Skip to content

Commit ccfa2fe

Browse files
committed
fix(webapp): the appearance settings and the page shell agree on the flag
The settings page read hasThemeSwitcher fresh while the root loader read it through the 30s cache, so right after a flip a user could save a theme the shell wasn't applying yet. Both now share the same cached read.
1 parent a8fa12f commit ccfa2fe

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

  • apps/webapp/app/routes/account._index

apps/webapp/app/routes/account._index/route.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import {
4040
normalizeThemePreference,
4141
type ThemePreference,
4242
} from "~/utils/themePreference";
43-
import { flag } from "~/v3/featureFlags.server";
43+
import { cachedFlag } from "~/v3/featureFlags.server";
4444
import { requireUser, requireUserId } from "~/services/session.server";
4545
import { emailSchema, MAX_EMAIL_LENGTH } from "~/utils/emailValidation";
4646
import { accountPath } from "~/utils/pathBuilder";
@@ -123,7 +123,7 @@ function createSchema(
123123
export async function loader({ request }: LoaderFunctionArgs) {
124124
const user = await requireUser(request);
125125
const showThemeSwitcher =
126-
user.admin || (await flag({ key: "hasThemeSwitcher", defaultValue: false }));
126+
user.admin || (await cachedFlag({ key: "hasThemeSwitcher", defaultValue: false }));
127127
return json({ showThemeSwitcher });
128128
}
129129

@@ -135,7 +135,7 @@ export const action: ActionFunction = async ({ request }) => {
135135
if (formData.get("action") === "update-theme") {
136136
const user = await requireUser(request);
137137
const showThemeSwitcher =
138-
user.admin || (await flag({ key: "hasThemeSwitcher", defaultValue: false }));
138+
user.admin || (await cachedFlag({ key: "hasThemeSwitcher", defaultValue: false }));
139139
if (!showThemeSwitcher) {
140140
return json({ error: "Not available" }, { status: 404 });
141141
}
@@ -147,7 +147,7 @@ export const action: ActionFunction = async ({ request }) => {
147147
if (formData.get("action") === "update-contrast") {
148148
const user = await requireUser(request);
149149
const showThemeSwitcher =
150-
user.admin || (await flag({ key: "hasThemeSwitcher", defaultValue: false }));
150+
user.admin || (await cachedFlag({ key: "hasThemeSwitcher", defaultValue: false }));
151151
if (!showThemeSwitcher) {
152152
return json({ error: "Not available" }, { status: 404 });
153153
}

0 commit comments

Comments
 (0)