fix: page mode toggle no longer overwrites default preference (#1996)
The header edit/read toggle now controls only the current session's mode without saving it as the user's preference. The saved preference (set in profile settings) is applied once on initial load and sticks across page navigations within the session, so navigating to a new page no longer resets the mode mid-session. Fixes #1693
This commit is contained in:
@@ -6,6 +6,7 @@ import React, { useCallback, useEffect, useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { PageEditMode } from "@/features/user/types/user.types.ts";
|
||||
import { ResponsiveSettingsRow, ResponsiveSettingsContent, ResponsiveSettingsControl } from "@/components/ui/responsive-settings-row";
|
||||
import { currentPageEditModeAtom } from "@/features/editor/atoms/editor-atoms.ts";
|
||||
|
||||
export default function PageStatePref() {
|
||||
const { t } = useTranslation();
|
||||
@@ -71,3 +72,24 @@ export function PageStateSegmentedControl({
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
// Header variant: updates the current page's mode locally without persisting
|
||||
// the preference to the server.
|
||||
export function PageEditModeToggle({ size }: { size?: MantineSize }) {
|
||||
const { t } = useTranslation();
|
||||
const [currentPageEditMode, setCurrentPageEditMode] = useAtom(
|
||||
currentPageEditModeAtom,
|
||||
);
|
||||
|
||||
return (
|
||||
<SegmentedControl
|
||||
size={size}
|
||||
value={currentPageEditMode}
|
||||
onChange={(v) => setCurrentPageEditMode(v as PageEditMode)}
|
||||
data={[
|
||||
{ label: t("Edit"), value: PageEditMode.Edit },
|
||||
{ label: t("Read"), value: PageEditMode.Read },
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user