mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-01 15:03:57 +08:00
fix(frontend): add missing i18n keys and improve workspace switch cache invalidation
- Add common.status.ready i18n key for zh/en locales - Add ready/initialized/archived/failed status colors to dashboard widgets - Expand QueryInvalidator to invalidate projectOverview, workflowStatusCounts, and dashboardStats queries on workspace switch
This commit is contained in:
@@ -53,13 +53,18 @@ function QueryInvalidator() {
|
||||
const registerQueryInvalidator = useWorkflowStore((state) => state.registerQueryInvalidator);
|
||||
|
||||
useEffect(() => {
|
||||
// Register callback to invalidate all 'workspace' prefixed queries
|
||||
// Register callback to invalidate all workspace-related queries on workspace switch
|
||||
const callback = () => {
|
||||
queryClient.invalidateQueries({
|
||||
predicate: (query) => {
|
||||
const queryKey = query.queryKey;
|
||||
// Check if the first element of the query key is 'workspace'
|
||||
return Array.isArray(queryKey) && queryKey[0] === 'workspace';
|
||||
if (!Array.isArray(queryKey)) return false;
|
||||
const prefix = queryKey[0];
|
||||
// Invalidate all query families that depend on workspace data
|
||||
return prefix === 'workspace'
|
||||
|| prefix === 'projectOverview'
|
||||
|| prefix === 'workflowStatusCounts'
|
||||
|| prefix === 'dashboardStats';
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@@ -69,6 +69,7 @@ const statusIcons: Record<string, React.ElementType> = {
|
||||
cancelled: XCircle,
|
||||
idle: Clock,
|
||||
initializing: Loader2,
|
||||
ready: CheckCircle2,
|
||||
};
|
||||
|
||||
// Status color mapping
|
||||
@@ -83,6 +84,7 @@ const statusColors: Record<string, string> = {
|
||||
cancelled: 'bg-destructive/20 text-destructive border-destructive/30',
|
||||
idle: 'bg-muted text-muted-foreground border-border',
|
||||
initializing: 'bg-info/20 text-info border-info/30',
|
||||
ready: 'bg-success/20 text-success border-success/30',
|
||||
};
|
||||
|
||||
// Status to i18n key mapping
|
||||
@@ -97,6 +99,7 @@ const statusI18nKeys: Record<string, string> = {
|
||||
cancelled: 'cancelled',
|
||||
idle: 'idle',
|
||||
initializing: 'initializing',
|
||||
ready: 'ready',
|
||||
};
|
||||
|
||||
// Lite task sub-type icons
|
||||
|
||||
@@ -119,6 +119,10 @@ const sessionStatusColors: Record<string, { bg: string; text: string }> = {
|
||||
in_progress: { bg: 'bg-warning/20', text: 'text-warning' },
|
||||
completed: { bg: 'bg-success/20', text: 'text-success' },
|
||||
paused: { bg: 'bg-slate-400/20', text: 'text-slate-500' },
|
||||
ready: { bg: 'bg-success/20', text: 'text-success' },
|
||||
initialized: { bg: 'bg-info/20', text: 'text-info' },
|
||||
archived: { bg: 'bg-slate-300/20', text: 'text-slate-400' },
|
||||
failed: { bg: 'bg-destructive/20', text: 'text-destructive' },
|
||||
};
|
||||
|
||||
// ---- Mini Stat Card with Sparkline ----
|
||||
|
||||
@@ -82,7 +82,8 @@
|
||||
"label": "Status",
|
||||
"openIssues": "Open Issues",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
"disabled": "Disabled",
|
||||
"ready": "Ready"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Low",
|
||||
|
||||
@@ -82,7 +82,8 @@
|
||||
"label": "状态",
|
||||
"openIssues": "开放问题",
|
||||
"enabled": "已启用",
|
||||
"disabled": "已禁用"
|
||||
"disabled": "已禁用",
|
||||
"ready": "就绪"
|
||||
},
|
||||
"priority": {
|
||||
"low": "低",
|
||||
|
||||
Reference in New Issue
Block a user