memowake-front/lib/PermissionService.ts

22 lines
715 B
TypeScript

interface PermissionAlertOptions {
title: string;
message: string;
}
type ShowPermissionAlertFunction = (options: PermissionAlertOptions) => Promise<boolean>;
let showPermissionAlertRef: ShowPermissionAlertFunction | null = null;
export const PermissionService = {
set: (fn: ShowPermissionAlertFunction) => {
showPermissionAlertRef = fn;
},
show: (options: PermissionAlertOptions): Promise<boolean> => {
if (!showPermissionAlertRef) {
console.error("PermissionAlert has not been set. Please ensure PermissionProvider is used at the root of your app.");
return Promise.resolve(false);
}
return showPermissionAlertRef(options);
},
};