mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-09-16 07:11:39 +08:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { createContext, useContext } from 'react';
|
|
import { CheckResult, ProgressData } from './type';
|
|
import { Pushy, Cresc } from './client';
|
|
|
|
const noop = () => {};
|
|
const asyncNoop = () => Promise.resolve();
|
|
|
|
export const defaultContext = {
|
|
checkUpdate: asyncNoop,
|
|
switchVersion: asyncNoop,
|
|
switchVersionLater: asyncNoop,
|
|
markSuccess: noop,
|
|
dismissError: noop,
|
|
downloadUpdate: asyncNoop,
|
|
downloadAndInstallApk: asyncNoop,
|
|
getCurrentVersionInfo: () => Promise.resolve({}),
|
|
parseTestQrCode: () => false,
|
|
currentHash: '',
|
|
packageVersion: '',
|
|
};
|
|
|
|
export const UpdateContext = createContext<{
|
|
checkUpdate: () => Promise<void>;
|
|
switchVersion: () => Promise<void>;
|
|
switchVersionLater: () => Promise<void>;
|
|
markSuccess: () => void;
|
|
dismissError: () => void;
|
|
downloadUpdate: () => Promise<boolean | void>;
|
|
downloadAndInstallApk: (url: string) => Promise<void>;
|
|
getCurrentVersionInfo: () => Promise<{
|
|
name?: string;
|
|
description?: string;
|
|
metaInfo?: string;
|
|
}>;
|
|
parseTestQrCode: (code: string) => boolean;
|
|
currentHash: string;
|
|
packageVersion: string;
|
|
client?: Pushy | Cresc;
|
|
progress?: ProgressData;
|
|
updateInfo?: CheckResult;
|
|
lastError?: Error;
|
|
}>(defaultContext);
|
|
|
|
export const usePushy = () => useContext(UpdateContext);
|
|
|
|
export const useCresc = () => useContext(UpdateContext);
|