Page MenuHomePhabricator

D5904.id19809.diff
No OneTemporary

D5904.id19809.diff

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

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)

Event Timeline