hue control

This commit is contained in:
2025-10-30 02:38:48 +01:00
parent 9fe97f2b8a
commit c65a3d2c40
4 changed files with 107 additions and 0 deletions
+41
View File
@@ -461,6 +461,22 @@ const AppLayout = () => {
const stored = window.localStorage.getItem('papercrate_view_mode');
return stored === 'grid' ? 'grid' : 'list';
});
const [neutralHue, setNeutralHue] = useState(() => {
if (typeof window === 'undefined') {
return 260;
}
const stored = window.localStorage.getItem('papercrate_neutral_hue');
if (stored) {
const parsedStored = Number.parseInt(stored, 10);
if (!Number.isNaN(parsedStored)) {
return parsedStored;
}
}
const root = document.documentElement;
const current = root.style.getPropertyValue('--neutral-hue');
const parsed = Number.parseInt(current, 10);
return Number.isNaN(parsed) ? 260 : parsed;
});
const initialRowSelection = [];
const [selectedRowKeys, setSelectedRowKeys] = useState(initialRowSelection);
const [selectionOrder, setSelectionOrder] = useState(initialRowSelection);
@@ -558,6 +574,27 @@ const AppLayout = () => {
}
}, [token, appStatus, refreshAccessToken]);
useEffect(() => {
if (typeof document !== 'undefined') {
document.documentElement.style.setProperty('--neutral-hue', `${neutralHue}deg`);
}
if (typeof window !== 'undefined') {
window.localStorage.setItem('papercrate_neutral_hue', String(neutralHue));
}
}, [neutralHue]);
const handleNeutralHueChange = useCallback((value) => {
if (value === '') {
setNeutralHue(260);
return;
}
const parsed = Number(value);
if (Number.isNaN(parsed)) {
return;
}
setNeutralHue(parsed);
}, []);
const clearFilters = useCallback(() => {
setSearchQuery('');
setActiveTagFilters([]);
@@ -5035,6 +5072,8 @@ const AppLayout = () => {
draggedFolderId,
onCreateFolder: handlePromptCreateFolder,
creatingFolder,
onNeutralHueChange: handleNeutralHueChange,
neutralHue,
tags,
activeTagIds: activeTagFilters,
onToggleTagFilter: toggleTagFilter,
@@ -5093,6 +5132,8 @@ const AppLayout = () => {
handleCorrespondentCreate,
handlePromptCreateFolder,
creatingFolder,
handleNeutralHueChange,
neutralHue,
],
);