Added onboarding + a lightweight install banner to both the mobile login screen and the settings screen, with Android/Chromium
install prompt support and iOS “Share → Add to Home Screen” guidance. Also added a small helper + tests to decide when/which banner variant should show, and shared copy in common.json.
This commit is contained in:
28
resources/js/admin/mobile/lib/installBanner.ts
Normal file
28
resources/js/admin/mobile/lib/installBanner.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
export type InstallBannerVariant = 'prompt' | 'ios';
|
||||
|
||||
export type InstallBannerState = {
|
||||
variant: InstallBannerVariant;
|
||||
};
|
||||
|
||||
export type InstallBannerInput = {
|
||||
isInstalled: boolean;
|
||||
isStandalone: boolean;
|
||||
canInstall: boolean;
|
||||
isIos: boolean;
|
||||
};
|
||||
|
||||
export function resolveInstallBannerState(input: InstallBannerInput): InstallBannerState | null {
|
||||
if (input.isInstalled || input.isStandalone) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (input.canInstall) {
|
||||
return { variant: 'prompt' };
|
||||
}
|
||||
|
||||
if (input.isIos) {
|
||||
return { variant: 'ios' };
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user