feat(app): redesign discovery and align skeletons with rendered UI

This commit is contained in:
Hampus authored and GitHub committed 2026-08-16 19:17:28 +02:00
1 parent e054aa96be
commit 98c40c6979
380 files changed
+50869 -32207

No files matched your search

@@ -38,10 +38,14 @@ const APP_STATE_DESCRIPTOR = msg({
message: 'App state',
comment: 'Developer options group for overriding app/account state.',
});
const BYPASS_SPLASH_SCREEN_DESCRIPTOR = msg({
message: 'Bypass splash screen',
const BYPASS_LOADING_SKELETON_DESCRIPTOR = msg({
message: 'Bypass loading skeleton',
comment: 'Developer option label.',
});
const FORCE_LOADING_SKELETON_DESCRIPTOR = msg({
message: 'Force loading skeleton',
comment: 'Developer tools debug menu label. Internal-only surface for developers; translators may keep this terse.',
});
const FORCE_UPDATE_READY_DESCRIPTOR = msg({
message: 'Force update ready',
comment: 'Developer option label for simulating an available update.',
@@ -163,7 +167,8 @@ export const getToggleGroups = (): Array<ToggleGroup> => [
{
title: APP_STATE_DESCRIPTOR,
items: [
{key: 'bypassSplashScreen', label: BYPASS_SPLASH_SCREEN_DESCRIPTOR},
{key: 'bypassLoadingSkeleton', label: BYPASS_LOADING_SKELETON_DESCRIPTOR},
{key: 'forceLoadingSkeleton', label: FORCE_LOADING_SKELETON_DESCRIPTOR},
{
key: 'forceUpdateReady',
label: FORCE_UPDATE_READY_DESCRIPTOR,
@@ -20,7 +20,8 @@ export type PremiumScenarioOverride =
| 'expired_old'
| 'visionary';
export type DeveloperOptionsState = Readonly<{
bypassSplashScreen: boolean;
bypassLoadingSkeleton: boolean;
forceLoadingSkeleton: boolean;
forceFailMessageSends: boolean;
forceFailMessageLoads: boolean;
forceRenderPlaceholders: boolean;
@@ -103,7 +104,8 @@ type MutableDeveloperOptionsState = {
};
class DeveloperOptions implements DeveloperOptionsState {
bypassSplashScreen = false;
bypassLoadingSkeleton = false;
forceLoadingSkeleton = false;
forceFailMessageSends = false;
forceFailMessageLoads = false;
forceRenderPlaceholders = false;
@@ -189,7 +191,8 @@ class DeveloperOptions implements DeveloperOptionsState {
private async initPersistence(): Promise<void> {
await makePersistent(this, 'DeveloperOptions', [
'bypassSplashScreen',
'bypassLoadingSkeleton',
'forceLoadingSkeleton',
'forceFailMessageSends',
'forceFailMessageLoads',
'forceRenderPlaceholders',