22 lines
715 B
TypeScript
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);
|
|
},
|
|
};
|