diff --git a/app/components/CustomThemeSelector.tsx b/app/components/CustomThemeSelector.tsx
index ed41a6293..7b77f76c9 100644
--- a/app/components/CustomThemeSelector.tsx
+++ b/app/components/CustomThemeSelector.tsx
@@ -265,6 +265,7 @@ export function CustomThemeSelector({
onSave,
onReset,
hidePatreonInfo,
+ fetcherState,
}: {
initialTheme: CustomTheme | null | undefined;
isSupporter: boolean;
@@ -272,6 +273,7 @@ export function CustomThemeSelector({
onSave: (themeInput: ThemeInput) => void;
onReset: () => void;
hidePatreonInfo?: boolean;
+ fetcherState?: "idle" | "submitting" | "loading";
}) {
const { t } = useTranslation(["common"]);
@@ -438,11 +440,18 @@ export function CustomThemeSelector({
}}
/>
-
+
{t("common:actions.save")}
diff --git a/app/features/settings/routes/settings.tsx b/app/features/settings/routes/settings.tsx
index 6fad0f3a8..1afedd124 100644
--- a/app/features/settings/routes/settings.tsx
+++ b/app/features/settings/routes/settings.tsx
@@ -252,6 +252,7 @@ function CustomColorSelector() {
isSupporter={isSupporter}
onSave={handleSave}
onReset={handleReset}
+ fetcherState={fetcher.state}
/>
);
}
diff --git a/app/features/team/routes/t.$customUrl.edit.tsx b/app/features/team/routes/t.$customUrl.edit.tsx
index e00f69f36..fe9922686 100644
--- a/app/features/team/routes/t.$customUrl.edit.tsx
+++ b/app/features/team/routes/t.$customUrl.edit.tsx
@@ -277,6 +277,7 @@ function TeamCustomThemeSelector() {
isPersonalTheme={false}
onSave={handleSave}
onReset={handleReset}
+ fetcherState={fetcher.state}
/>
);
}