/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ import {timeout} from 'flipper-plugin'; import {StatusMessageType} from '../reducers/application'; /** * @deprecated use timeout from flipper-plugin * @param ms @ * @param promise * @param timeoutMessage * @returns */ export default function promiseTimeout( ms: number, promise: Promise, timeoutMessage?: string, ): Promise { return timeout(ms, promise, timeoutMessage); } export function showStatusUpdatesForPromise( promise: Promise, message: string, sender: string, addStatusMessage: (payload: StatusMessageType) => void, removeStatusMessage: (payload: StatusMessageType) => void, ): Promise { const statusMsg = {msg: message, sender}; addStatusMessage(statusMsg); return promise .then((result) => { removeStatusMessage(statusMsg); return result; }) .catch((e) => { removeStatusMessage(statusMsg); throw e; }); } export function showStatusUpdatesForDuration( message: string, sender: string, duration: number, addStatusMessage: (payload: StatusMessageType) => void, removeStatusMessage: (payload: StatusMessageType) => void, ): void { showStatusUpdatesForPromise( new Promise((resolve, _reject) => { setTimeout(function () { resolve(); }, duration); }), message, sender, addStatusMessage, removeStatusMessage, ); }