Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3345849
D5904.id19809.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
24 KB
Referenced Files
None
Subscribers
None
D5904.id19809.diff
View Options
diff --git a/keyserver/.flowconfig b/keyserver/.flowconfig
--- a/keyserver/.flowconfig
+++ b/keyserver/.flowconfig
@@ -31,7 +31,6 @@
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
-signature-verification-failure=warn
[strict]
deprecated-type
diff --git a/keyserver/package.json b/keyserver/package.json
--- a/keyserver/package.json
+++ b/keyserver/package.json
@@ -33,7 +33,7 @@
"babel-jest": "^26.6.3",
"chokidar-cli": "^2.1.0",
"concurrently": "^5.3.0",
- "flow-bin": "^0.158.0",
+ "flow-bin": "^0.182.0",
"flow-typed": "^3.2.1",
"jest": "^26.6.3",
"nodemon": "^2.0.4"
diff --git a/keyserver/src/database/database.js b/keyserver/src/database/database.js
--- a/keyserver/src/database/database.js
+++ b/keyserver/src/database/database.js
@@ -99,11 +99,11 @@
}
// We use this fake result for dry runs
-function FakeSQLResult() {
- this.insertId = -1;
-}
-FakeSQLResult.prototype = Array.prototype;
-const fakeResult: QueryResults = (new FakeSQLResult(): any);
+const fakeResult: QueryResults = (() => {
+ const result: any = [];
+ result.insertId = -1;
+ return result;
+})();
const MYSQL_DEADLOCK_ERROR_CODE = 1213;
diff --git a/keyserver/src/updaters/thread-permission-updaters.js b/keyserver/src/updaters/thread-permission-updaters.js
--- a/keyserver/src/updaters/thread-permission-updaters.js
+++ b/keyserver/src/updaters/thread-permission-updaters.js
@@ -977,6 +977,8 @@
}
}
+const emptyCommitMembershipChangesetConfig = Object.freeze({});
+
// Specify non-empty changedThreadIDs to force updates to be generated for those
// threads, presumably for reasons not covered in the changeset. calendarQuery
// only needs to be specified if a JOIN_THREAD update will be generated for the
@@ -996,7 +998,7 @@
+changedThreadIDs?: Set<string>,
+calendarQuery?: ?CalendarQuery,
+updatesForCurrentSession?: UpdatesForCurrentSession,
- } = {},
+ } = emptyCommitMembershipChangesetConfig,
): Promise<ChangesetCommitResult> {
if (!viewer.loggedIn) {
throw new ServerError('not_logged_in');
@@ -1130,6 +1132,8 @@
};
}
+const emptyGetChangesetCommitResultConfig = Object.freeze({});
+
// When the user tries to create a new thread, it's possible for the client to
// fail the creation even if a row gets added to the threads table. This may
// occur due to a timeout (on either the client or server side), or due to some
@@ -1147,7 +1151,7 @@
}: {
+calendarQuery?: ?CalendarQuery,
+updatesForCurrentSession?: UpdatesForCurrentSession,
- } = {},
+ } = emptyGetChangesetCommitResultConfig,
): Promise<CreateUpdatesResult> {
for (const update of otherUpdates) {
if (
diff --git a/landing/.flowconfig b/landing/.flowconfig
--- a/landing/.flowconfig
+++ b/landing/.flowconfig
@@ -20,7 +20,6 @@
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
-signature-verification-failure=warn
[strict]
deprecated-type
diff --git a/landing/package.json b/landing/package.json
--- a/landing/package.json
+++ b/landing/package.json
@@ -27,7 +27,7 @@
"clean-webpack-plugin": "^3.0.0",
"concurrently": "^5.3.0",
"css-loader": "^4.3.0",
- "flow-bin": "^0.158.0",
+ "flow-bin": "^0.182.0",
"flow-typed": "^3.2.1",
"mini-css-extract-plugin": "^0.11.2",
"optimize-css-assets-webpack-plugin": "^5.0.3",
diff --git a/lib/.flowconfig b/lib/.flowconfig
--- a/lib/.flowconfig
+++ b/lib/.flowconfig
@@ -18,7 +18,6 @@
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
-signature-verification-failure=warn
[strict]
deprecated-type
diff --git a/lib/package.json b/lib/package.json
--- a/lib/package.json
+++ b/lib/package.json
@@ -19,7 +19,7 @@
"@babel/preset-flow": "^7.13.13",
"@babel/preset-react": "^7.13.13",
"babel-jest": "^26.6.3",
- "flow-bin": "^0.158.0",
+ "flow-bin": "^0.182.0",
"flow-typed": "^3.2.1"
},
"dependencies": {
diff --git a/lib/shared/notif-utils.js b/lib/shared/notif-utils.js
--- a/lib/shared/notif-utils.js
+++ b/lib/shared/notif-utils.js
@@ -22,14 +22,14 @@
threadInfo: ThreadInfo,
): NotifTexts {
const fullNotifTexts = fullNotifTextsForMessageInfo(messageInfos, threadInfo);
- return {
- merged: trimText(fullNotifTexts.merged, 300),
- body: trimText(fullNotifTexts.body, 300),
- title: trimText(fullNotifTexts.title, 100),
- ...(fullNotifTexts.prefix && {
- prefix: trimText(fullNotifTexts.prefix, 50),
- }),
- };
+ const merged = trimText(fullNotifTexts.merged, 300);
+ const body = trimText(fullNotifTexts.body, 300);
+ const title = trimText(fullNotifTexts.title, 100);
+ if (!fullNotifTexts.prefix) {
+ return { merged, body, title };
+ }
+ const prefix = trimText(fullNotifTexts.prefix, 50);
+ return { merged, body, title, prefix };
}
const notifTextForSubthreadCreation = (
diff --git a/native/.flowconfig b/native/.flowconfig
--- a/native/.flowconfig
+++ b/native/.flowconfig
@@ -5,10 +5,13 @@
.*/node_modules/react-native-fast-image/src/index.js.flow
.*/node_modules/react-native-fs/FS.common.js
.*/node_modules/react-native-gesture-handler/Swipeable.js
+.*/fbjs/lib/keyMirrorRecursive.js.flow
; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js
+.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$
+
.*/comm/web/.*
.*/comm/keyserver/.*
@@ -60,7 +63,6 @@
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
-signature-verification-failure=warn
[strict]
deprecated-type
@@ -72,4 +74,4 @@
untyped-type-import
[version]
-^0.158.0
+^0.182.0
diff --git a/native/calendar/calendar.react.js b/native/calendar/calendar.react.js
--- a/native/calendar/calendar.react.js
+++ b/native/calendar/calendar.react.js
@@ -157,6 +157,7 @@
class Calendar extends React.PureComponent<Props, State> {
flatList: ?FlatList<CalendarItemWithHeight> = null;
currentState: ?string = NativeAppState.currentState;
+ appStateListener: ?EventSubscription;
lastForegrounded = 0;
lastCalendarReset = 0;
currentScrollPosition: ?number = null;
@@ -196,7 +197,10 @@
}
componentDidMount() {
- NativeAppState.addEventListener('change', this.handleAppStateChange);
+ this.appStateListener = NativeAppState.addEventListener(
+ 'change',
+ this.handleAppStateChange,
+ );
this.keyboardShowListener = addKeyboardShowListener(this.keyboardShow);
this.keyboardDismissListener = addKeyboardDismissListener(
this.keyboardDismiss,
@@ -205,7 +209,10 @@
}
componentWillUnmount() {
- NativeAppState.removeEventListener('change', this.handleAppStateChange);
+ if (this.appStateListener) {
+ this.appStateListener.remove();
+ this.appStateListener = null;
+ }
if (this.keyboardShowListener) {
removeKeyboardListener(this.keyboardShowListener);
this.keyboardShowListener = null;
diff --git a/native/calendar/entry.react.js b/native/calendar/entry.react.js
--- a/native/calendar/entry.react.js
+++ b/native/calendar/entry.react.js
@@ -613,7 +613,7 @@
}
this.currentlySaving = null;
if (e instanceof ServerError && e.message === 'concurrent_modification') {
- const revertedText = e.payload.db;
+ const revertedText = e.payload?.db;
const onRefresh = () => {
this.guardedSetState({
loadingStatus: 'inactive',
diff --git a/native/flow-typed/npm/@react-navigation/native_v6.x.x.js b/native/flow-typed/npm/@react-navigation/native_v6.x.x.js
--- a/native/flow-typed/npm/@react-navigation/native_v6.x.x.js
+++ b/native/flow-typed/npm/@react-navigation/native_v6.x.x.js
@@ -2323,8 +2323,8 @@
* Themes
*/
- declare export var DefaultTheme: Theme & { +dark: false, ... };
- declare export var DarkTheme: Theme & { +dark: true, ... };
+ declare export var DefaultTheme: {| ...Theme, +dark: false |};
+ declare export var DarkTheme: {| ...Theme, +dark: true |};
declare export function useTheme(): Theme;
declare export var ThemeProvider: React$ComponentType<{|
+value: Theme,
diff --git a/native/flow-typed/npm/react-native-reanimated_v2.x.x.js b/native/flow-typed/npm/react-native-reanimated_v2.x.x.js
--- a/native/flow-typed/npm/react-native-reanimated_v2.x.x.js
+++ b/native/flow-typed/npm/react-native-reanimated_v2.x.x.js
@@ -35,71 +35,71 @@
+[key: string]: any,
|};
- declare class Node { }
+ declare class NodeImpl { }
- declare class Value extends Node {
+ declare class ValueImpl extends NodeImpl {
constructor(val: number): this;
setValue(num: number): void;
}
- declare class Clock extends Node { }
+ declare class ClockImpl extends NodeImpl { }
- declare class View extends React$Component<{ ... }> { }
- declare class Text extends React$Component<{ ... }> { }
- declare class Image extends React$Component<{ ... }> { }
- declare class Code extends React$Component<{
- +exec: Node,
+ declare class ViewImpl extends React$Component<{ ... }> { }
+ declare class TextImpl extends React$Component<{ ... }> { }
+ declare class ImageImpl extends React$Component<{ ... }> { }
+ declare class CodeImpl extends React$Component<{
+ +exec: NodeImpl,
...
}> { }
- declare type NodeOrNum = Node | number;
+ declare type NodeOrNum = NodeImpl | number;
declare export type NodeParam = NodeOrNum | $ReadOnlyArray<?NodeParam>;
- declare type NodeOrArrayOfNodes = Node | $ReadOnlyArray<?NodeOrArrayOfNodes>;
+ declare type NodeOrArrayOfNodes = NodeImpl | $ReadOnlyArray<?NodeOrArrayOfNodes>;
declare export type Block = (
nodes: $ReadOnlyArray<?NodeOrArrayOfNodes>,
- ) => Node;
+ ) => NodeImpl;
- declare export type Set = (node: Value, val: NodeParam) => Node;
+ declare export type Set = (node: ValueImpl, val: NodeParam) => NodeImpl;
declare type ToNumber = (val: mixed) => number;
- declare export type Call = <N: $ReadOnlyArray<Node>>(
+ declare export type Call = <N: $ReadOnlyArray<NodeImpl>>(
nodes: N,
callback: (vals: $TupleMap<N, ToNumber>) => mixed,
- ) => Node;
+ ) => NodeImpl;
declare export type Cond = (
cond: NodeParam,
branch1: ?NodeParam,
branch2?: ?NodeParam,
- ) => Node;
-
- declare export type Not = Node => Node;
- declare export type And = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Or = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Eq = (NodeParam, NodeParam) => Node;
- declare export type Neq = (NodeParam, NodeParam) => Node;
- declare export type LessThan = (NodeParam, NodeParam) => Node;
- declare export type GreaterThan = (NodeParam, NodeParam) => Node;
- declare export type LessOrEq = (NodeParam, NodeParam) => Node;
- declare export type GreaterOrEq = (NodeParam, NodeParam) => Node;
- declare export type Add = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Sub = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Multiply = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Divide = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Pow = (...$ReadOnlyArray<NodeParam>) => Node;
- declare export type Max = (NodeParam, NodeParam) => Node;
- declare export type Min = (NodeParam, NodeParam) => Node;
- declare export type Abs = (NodeParam) => Node;
- declare export type Ceil = (NodeParam) => Node;
- declare export type Floor = (NodeParam) => Node;
- declare export type Round = (NodeParam) => Node;
-
- declare export type StartClock = Clock => Node;
- declare export type StopClock = Clock => Node;
- declare export type ClockRunning = Clock => Node;
-
- declare export type Debug = (string, NodeParam) => Node;
+ ) => NodeImpl;
+
+ declare export type Not = NodeImpl => NodeImpl;
+ declare export type And = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Or = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Eq = (NodeParam, NodeParam) => NodeImpl;
+ declare export type Neq = (NodeParam, NodeParam) => NodeImpl;
+ declare export type LessThan = (NodeParam, NodeParam) => NodeImpl;
+ declare export type GreaterThan = (NodeParam, NodeParam) => NodeImpl;
+ declare export type LessOrEq = (NodeParam, NodeParam) => NodeImpl;
+ declare export type GreaterOrEq = (NodeParam, NodeParam) => NodeImpl;
+ declare export type Add = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Sub = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Multiply = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Divide = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Pow = (...$ReadOnlyArray<NodeParam>) => NodeImpl;
+ declare export type Max = (NodeParam, NodeParam) => NodeImpl;
+ declare export type Min = (NodeParam, NodeParam) => NodeImpl;
+ declare export type Abs = (NodeParam) => NodeImpl;
+ declare export type Ceil = (NodeParam) => NodeImpl;
+ declare export type Floor = (NodeParam) => NodeImpl;
+ declare export type Round = (NodeParam) => NodeImpl;
+
+ declare export type StartClock = ClockImpl => NodeImpl;
+ declare export type StopClock = ClockImpl => NodeImpl;
+ declare export type ClockRunning = ClockImpl => NodeImpl;
+
+ declare export type Debug = (string, NodeParam) => NodeImpl;
declare type ExtrapolateType = { ... };
declare type ExtrapolateModule = {
@@ -115,7 +115,7 @@
declare export type InterpolateNode = (
node: NodeParam,
interpolationConfig: InterpolationConfig,
- ) => Node;
+ ) => NodeImpl;
declare export type InterpolateColorsConfig = {
+inputRange: $ReadOnlyArray<number>,
@@ -124,7 +124,7 @@
declare export type InterpolateColors = (
animationValue: NodeParam,
interpolationConfig: InterpolateColorsConfig
- ) => Node;
+ ) => NodeImpl;
declare export type Interpolate = (
input: number,
@@ -146,10 +146,10 @@
declare type EasingFn = (t: number) => number;
declare export type TimingState = {
- +finished: Value,
- +position: Value,
- +frameTime: Value,
- +time: Value,
+ +finished: ValueImpl,
+ +position: ValueImpl,
+ +frameTime: ValueImpl,
+ +time: ValueImpl,
...
};
declare export type TimingConfig = {
@@ -164,14 +164,14 @@
};
declare type Timing = {|
(
- value: Value,
+ value: ValueImpl,
config: TimingConfig,
): Animator,
(
- clock: Clock,
+ clock: ClockImpl,
state: TimingState,
config: TimingConfig,
- ): Node,
+ ): NodeImpl,
|};
declare export type SpringConfig = {
@@ -193,22 +193,22 @@
};
declare export type SpringState = {
- +finished: Value,
- +position: Value,
- +velocity: Value,
- +time: Value,
+ +finished: ValueImpl,
+ +position: ValueImpl,
+ +velocity: ValueImpl,
+ +time: ValueImpl,
...
};
declare type Spring = {|
(
- value: Value,
+ value: ValueImpl,
config: SpringConfig,
): Animator,
(
- clock: Clock,
+ clock: ClockImpl,
state: SpringState,
config: SpringConfig,
- ): Node,
+ ): NodeImpl,
|};
declare export type DecayConfig = {
@@ -216,22 +216,22 @@
...
};
declare export type DecayState = {
- +finished: Value,
- +position: Value,
- +velocity: Value,
- +time: Value,
+ +finished: ValueImpl,
+ +position: ValueImpl,
+ +velocity: ValueImpl,
+ +time: ValueImpl,
...
};
declare type Decay = {|
(
- value: Value,
+ value: ValueImpl,
config: DecayConfig,
): Animator,
(
- clock: Clock,
+ clock: ClockImpl,
state: DecayState,
config: DecayConfig,
- ): Node,
+ ): NodeImpl,
|};
declare type LayoutAnimation = {|
@@ -412,22 +412,22 @@
| GestureStateActive
| GestureStateEnd;
- declare type $Event<T: { ... }> = $SyntheticEvent<{
+ declare type $Event<T: { ... }> = {
handlerTag: number,
numberOfPointers: number,
state: GestureState,
oldState: GestureState,
...$Exact<T>,
...
- }>;
+ };
- declare type ToValue = (val: mixed) => Value;
+ declare type ToValue = (val: mixed) => ValueImpl;
declare type Event = <T, E: $Event<T>>(defs: $ReadOnlyArray<{
+nativeEvent: $Shape<$ObjMap<E, ToValue>>,
...
- }>) => E;
+ }>) => $SyntheticEvent<E> => void;
- declare type UseValue = (initialVal: number) => Value;
+ declare type UseValue = (initialVal: number) => ValueImpl;
declare type AnimatedGestureHandlerEventCallback<T, E: $Event<T>> = (
event: $Shape<E>,
@@ -484,13 +484,13 @@
declare type CancelAnimation = (animation: number) => void;
- declare export var Node: typeof Node;
- declare export var Value: typeof Value;
- declare export var Clock: typeof Clock;
- declare export var View: typeof View;
- declare export var Text: typeof Text;
- declare export var Image: typeof Image;
- declare export var Code: typeof Code;
+ declare export var Node: typeof NodeImpl;
+ declare export var Value: typeof ValueImpl;
+ declare export var Clock: typeof ClockImpl;
+ declare export var View: typeof ViewImpl;
+ declare export var Text: typeof TextImpl;
+ declare export var Image: typeof ImageImpl;
+ declare export var Code: typeof CodeImpl;
declare export var block: Block;
declare export var set: Set;
declare export var call: Call;
@@ -538,13 +538,13 @@
declare export var cancelAnimation: CancelAnimation;
declare export default {
- +Node: typeof Node,
- +Value: typeof Value,
- +Clock: typeof Clock,
- +View: typeof View,
- +Text: typeof Text,
- +Image: typeof Image,
- +Code: typeof Code,
+ +Node: typeof NodeImpl,
+ +Value: typeof ValueImpl,
+ +Clock: typeof ClockImpl,
+ +View: typeof ViewImpl,
+ +Text: typeof TextImpl,
+ +Image: typeof ImageImpl,
+ +Code: typeof CodeImpl,
+block: Block,
+set: Set,
+call: Call,
diff --git a/native/media/file-utils.js b/native/media/file-utils.js
--- a/native/media/file-utils.js
+++ b/native/media/file-utils.js
@@ -155,11 +155,11 @@
let finalURI = uri;
if (newLocalURI && newLocalURI !== uri) {
+ finalURI = newLocalURI;
console.log(
'fetchAssetInfo returned localURI ' +
`${newLocalURI} when we already had ${uri}`,
);
- finalURI = newLocalURI;
}
return {
diff --git a/native/navigation/disconnected-bar.react.js b/native/navigation/disconnected-bar.react.js
--- a/native/navigation/disconnected-bar.react.js
+++ b/native/navigation/disconnected-bar.react.js
@@ -26,7 +26,7 @@
};
function DisconnectedBar(props: Props): React.Node {
const { shouldShowDisconnectedBar } = useShouldShowDisconnectedBar();
- const showingRef = new React.useRef();
+ const showingRef = React.useRef();
if (!showingRef.current) {
showingRef.current = new Animated.Value(shouldShowDisconnectedBar ? 1 : 0);
}
diff --git a/native/navigation/tab-bar.react.js b/native/navigation/tab-bar.react.js
--- a/native/navigation/tab-bar.react.js
+++ b/native/navigation/tab-bar.react.js
@@ -20,7 +20,7 @@
type Props = React.ElementConfig<typeof BottomTabBar>;
function TabBar(props: Props) {
- const tabBarVisibleRef = new React.useRef();
+ const tabBarVisibleRef = React.useRef();
if (!tabBarVisibleRef.current) {
tabBarVisibleRef.current = new Value(1);
}
diff --git a/native/package.json b/native/package.json
--- a/native/package.json
+++ b/native/package.json
@@ -31,7 +31,7 @@
"babel-plugin-transform-remove-console": "^6.9.4",
"babel-plugin-transform-remove-strict-mode": "0.0.2",
"comm-react-native-codegen": "npm:react-native-codegen@0.0.7",
- "flow-bin": "^0.158.0",
+ "flow-bin": "^0.182.0",
"flow-mono-cli": "^1.5.0",
"flow-typed": "^3.2.1",
"fs-extra": "^8.1.0",
diff --git a/patches/react-native-firebase+5.6.0.patch b/patches/react-native-firebase+5.6.0.patch
--- a/patches/react-native-firebase+5.6.0.patch
+++ b/patches/react-native-firebase+5.6.0.patch
@@ -246,7 +246,7 @@
export default class User {
_auth: Auth;
diff --git a/node_modules/react-native-firebase/dist/modules/core/app.js.flow b/node_modules/react-native-firebase/dist/modules/core/app.js.flow
-index 6e27c61..27d226d 100644
+index 6e27c61..0b0b492 100644
--- a/node_modules/react-native-firebase/dist/modules/core/app.js.flow
+++ b/node_modules/react-native-firebase/dist/modules/core/app.js.flow
@@ -21,7 +21,9 @@ import Links, { NAMESPACE as LinksNamespace } from '../links';
@@ -259,23 +259,21 @@
import Performance, { NAMESPACE as PerfNamespace } from '../perf';
import Storage, { NAMESPACE as StorageNamespace } from '../storage';
import Utils, { NAMESPACE as UtilsNamespace } from '../utils';
-@@ -63,7 +65,14 @@ export default class App {
+@@ -63,7 +65,12 @@ export default class App {
messaging: () => Messaging;
- notifications: () => Notifications;
-+ notifications: {
-+ (): Notifications,
-+ +Android: NotificationsStatics.Android,
-+ +Notification: (
-+ nativeNotification?: NativeNotification,
-+ notifications?: Notifications,
-+ ) => NotificationsStatics.Notification,
-+ };
++ notifications:
++ & ((): Notifications)
++ & {
++ +Android: NotificationsStatics.Android,
++ +Notification: NotificationsStatics.Notification,
++ };
perf: () => Performance;
-@@ -77,7 +86,7 @@ export default class App {
+@@ -77,7 +84,7 @@ export default class App {
fromNative: boolean = false
) {
this._name = name;
@@ -284,7 +282,7 @@
if (fromNative) {
this._initialized = true;
-@@ -129,7 +138,7 @@ export default class App {
+@@ -129,7 +136,7 @@ export default class App {
* @return {*}
*/
get options(): FirebaseOptions {
diff --git a/web/.flowconfig b/web/.flowconfig
--- a/web/.flowconfig
+++ b/web/.flowconfig
@@ -20,7 +20,6 @@
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
-signature-verification-failure=warn
[strict]
deprecated-type
diff --git a/web/calendar/entry.react.js b/web/calendar/entry.react.js
--- a/web/calendar/entry.react.js
+++ b/web/calendar/entry.react.js
@@ -387,7 +387,7 @@
this.setState({ loadingStatus: 'inactive' }, this.updateHeight);
this.props.dispatch({
type: concurrentModificationResetActionType,
- payload: { id: entryID, dbText: e.payload.db },
+ payload: { id: entryID, dbText: e.payload?.db },
});
this.props.popModal();
};
diff --git a/web/electron.js b/web/electron.js
--- a/web/electron.js
+++ b/web/electron.js
@@ -1,18 +1,21 @@
// @flow
-declare var electronContextBridge;
+type ElectronContextBridge = {
+ // Returns a callback that you can call to remove the listener
+ +onNavigate: OnNavigateListener => () => void,
+ +clearHistory: () => void,
+ +doubleClickTopBar: () => void,
+ +setBadge: (value: string | number | null) => void,
+};
type OnNavigateListener = ({
+canGoBack: boolean,
+canGoForward: boolean,
}) => void;
-const electron: null | {
- // Returns a callback that you can call to remove the listener
- +onNavigate: OnNavigateListener => () => void,
- +clearHistory: () => void,
- +doubleClickTopBar: () => void,
- +setBadge: (value: string | number | null) => void,
-} = typeof electronContextBridge === 'undefined' ? null : electronContextBridge;
+declare var electronContextBridge: ?ElectronContextBridge;
+
+const electron: null | ElectronContextBridge =
+ typeof electronContextBridge === 'undefined' ? null : electronContextBridge;
export default electron;
diff --git a/web/package.json b/web/package.json
--- a/web/package.json
+++ b/web/package.json
@@ -29,7 +29,7 @@
"clean-webpack-plugin": "^3.0.0",
"concurrently": "^5.3.0",
"css-loader": "^4.3.0",
- "flow-bin": "^0.158.0",
+ "flow-bin": "^0.182.0",
"flow-typed": "^3.2.1",
"jest": "^26.6.3",
"mini-css-extract-plugin": "^0.11.2",
diff --git a/web/vector-utils.js b/web/vector-utils.js
--- a/web/vector-utils.js
+++ b/web/vector-utils.js
@@ -2,9 +2,7 @@
import invariant from 'invariant';
-declare class SVGElement {
- parentNode: Element;
-}
+declare class SVGElement extends Element {}
function htmlTargetFromEvent(event: SyntheticEvent<*>): HTMLElement {
let target = event.target;
diff --git a/yarn.lock b/yarn.lock
--- a/yarn.lock
+++ b/yarn.lock
@@ -10292,10 +10292,10 @@
debug "^4.1.1"
fs-extra "^7.0.0"
-flow-bin@^0.158.0:
- version "0.158.0"
- resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.158.0.tgz#0a09763d41eb8ec7135ced6a3b9f8fa370a393d8"
- integrity sha512-Gk5md8XTwk/M+J5M+rFyS1LJfFen6ldY60jM9+meWixlKf4b0vwdoUO8R7oo471pze+GY+blrnskUeqLDxFJfg==
+flow-bin@^0.182.0:
+ version "0.182.0"
+ resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.182.0.tgz#1dacbd72465743670412ada015d3182deda6f966"
+ integrity sha512-Ux90c2sMfoV/VVjOEFT2OHFJFnyfoIbTK/5AKAMnU4Skfru1G+FyS5YLu3XxQl0R6mpA9+rrFlPfYZq/5B+J3w==
flow-mono-cli@^1.5.0:
version "1.5.3"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Nov 23, 7:10 AM (18 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2567235
Default Alt Text
D5904.id19809.diff (24 KB)
Attached To
Mode
D5904: [native] [10/40] RN 0.70: Flow update
Attached
Detach File
Event Timeline
Log In to Comment