From f3691bec7bce89252ee34a82b709e081d308eb3e Mon Sep 17 00:00:00 2001 From: Viktor Patrushev Date: Tue, 10 Sep 2019 04:09:39 -0700 Subject: [PATCH] Converted QPL plugin to TypeScript Summary: Converted QPL plugin to TypeScript Reviewed By: danielbuechele Differential Revision: D17184095 fbshipit-source-id: 2a841bd8bc746cab70e6a03b0ccc8ffbdbda43c6 --- package.json | 1 + src/index.tsx | 1 + types/ResizeObserver.d.tsx | 49 ++++++++++++++++++++++++++++++++++++++ types/globals.tsx | 2 ++ yarn.lock | 8 +++++++ 5 files changed, 61 insertions(+) create mode 100644 types/ResizeObserver.d.tsx diff --git a/package.json b/package.json index 66d9f7b57..e010f11ee 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "@types/promise-retry": "^1.1.3", "@types/react-color": "^3.0.1", "@types/react-transition-group": "^4.2.2", + "@types/react-virtualized": "^9.21.4", "@types/redux-devtools-extension": "^2.13.2", "@types/rsocket-tcp-server": "^0.0.2", "@types/which": "^1.3.1", diff --git a/src/index.tsx b/src/index.tsx index 5d1c90517..1e594d4c9 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -16,6 +16,7 @@ export { FlipperPlugin, FlipperDevicePlugin, callClient, + Notification, } from './plugin'; export {PluginClient, Props} from './plugin'; export {default as Client} from './Client'; diff --git a/types/ResizeObserver.d.tsx b/types/ResizeObserver.d.tsx new file mode 100644 index 000000000..079cc74af --- /dev/null +++ b/types/ResizeObserver.d.tsx @@ -0,0 +1,49 @@ +/** + * Copyright 2018-present Facebook. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * @format + */ + +export interface ResizeObserver { + new (callback: ResizeObserverCallback): ResizeObserver; + observe: (target: Element) => void; + unobserve: (target: Element) => void; + disconnect: () => void; +} + +interface ResizeObserverCallback { + (entries: ResizeObserverEntry[], observer: ResizeObserver): void; +} + +export interface ResizeObserverEntry { + /** + * @param target The Element whose size has changed. + */ + new (target: Element): ResizeObserverEntry; + + /** + * The Element whose size has changed. + */ + readonly target: Element; + + /** + * Element's content rect when ResizeObserverCallback is invoked. + */ + readonly contentRect: DOMRectReadOnly; +} + +interface DOMRectReadOnly { + // static fromRect(other: DOMRectInit | undefined): DOMRectReadOnly; + + readonly x: number; + readonly y: number; + readonly width: number; + readonly height: number; + readonly top: number; + readonly right: number; + readonly bottom: number; + readonly left: number; + + toJSON: () => any; +} diff --git a/types/globals.tsx b/types/globals.tsx index 3d55127e7..1253ffc75 100644 --- a/types/globals.tsx +++ b/types/globals.tsx @@ -6,6 +6,7 @@ */ import {StoreEnhancerStoreCreator} from 'redux'; +import {ResizeObserver} from './ResizeObserver.d'; export {}; type RequestIdleHandle = number; @@ -29,5 +30,6 @@ declare global { }, ) => RequestIdleHandle; cancelIdleCallback: (handle: RequestIdleHandle) => void; + ResizeObserver: ResizeObserver; } } diff --git a/yarn.lock b/yarn.lock index 9d64e2701..363025875 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1220,6 +1220,14 @@ dependencies: "@types/react" "*" +"@types/react-virtualized@^9.21.4": + version "9.21.4" + resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.4.tgz#8f76a8a3e6d868cd6553e1671e047ec9a919788d" + integrity sha512-bvyAp67FNvFIz1GPaonAx6c6Ll8Cr9mVRgUTn5HHSKw5zmqTaxB7qnIl3is+fp7xwXDNBSw191pxpy3ACtTbyw== + dependencies: + "@types/prop-types" "*" + "@types/react" "*" + "@types/react-window@^1.8.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.1.tgz#6e1ceab2e6f2f78dbf1f774ee0e00f1bb0364bb3"