feat(housekeeping): finish accessible command deck

This commit is contained in:
2026-08-30 18:49:10 +02:00
parent 85ad0452d3
commit a113e48880
55 changed files with 17064 additions and 509 deletions
@@ -14,6 +14,27 @@ import {
WidgetSettings,
} from "../../../foundation/shell/widget-settings";
export interface OperationsPersonalizationLabels {
readonly favorites: {
readonly title: string;
readonly pin: string;
readonly unpin: string;
readonly error: string;
readonly reorderInstructions: string;
};
readonly widgetSettings: {
readonly title: string;
readonly mandatory: string;
readonly error: string;
};
readonly widgets: {
readonly title: string;
readonly partial: string;
readonly error: string;
readonly reorderInstructions: string;
};
}
const persistPreferences: HousekeepingPreferenceSaver = async (preferences) => {
const { saveHousekeepingPreferences } = await import(
"@/actions/housekeeping-preferences"
@@ -27,6 +48,9 @@ export function OperationsPersonalization({
widgets,
widgetResult,
surface,
labels,
routeTitles,
widgetTitles,
savePreferences = persistPreferences,
}: {
readonly preferences: HousekeepingPreferences;
@@ -34,6 +58,9 @@ export function OperationsPersonalization({
readonly widgets: readonly HousekeepingWidgetDefinition[];
readonly widgetResult: HousekeepingWidgetLoadResult;
readonly surface: HousekeepingSurface;
readonly labels: OperationsPersonalizationLabels;
readonly routeTitles: Readonly<Record<string, string>>;
readonly widgetTitles: Readonly<Record<string, string>>;
readonly savePreferences?: HousekeepingPreferenceSaver;
}) {
return (
@@ -44,22 +71,15 @@ export function OperationsPersonalization({
routes={routes}
surface={surface}
savePreferences={savePreferences}
labels={{
title: "Favorites",
pin: "Pin",
unpin: "Unpin",
error: "Preferences could not be saved",
}}
labels={labels.favorites}
titles={routeTitles}
/>
<WidgetSettings
preferences={preferences}
widgets={widgets}
savePreferences={savePreferences}
labels={{
title: "Widget settings",
mandatory: "Mandatory",
error: "Preferences could not be saved",
}}
labels={labels.widgetSettings}
titles={widgetTitles}
/>
</div>
@@ -67,11 +87,8 @@ export function OperationsPersonalization({
preferences={preferences}
result={widgetResult}
savePreferences={savePreferences}
labels={{
title: "Widgets",
partial: "Some widgets are unavailable",
error: "Widget order could not be saved",
}}
labels={labels.widgets}
titles={widgetTitles}
/>
</>
);