fix: deduplicate WIDGET_NAMES and remove double-render in TOGGLE_SUBTASK (#32)

- Export WIDGET_NAMES from widgetSync.ts and import in widgetTaskHandler.ts
- Remove renderWithState call before forceWidgetRefresh to avoid double-render
- Use shared WIDGET_NAMES in widgetSync.ts refresh loop

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
escouade-bot 2026-03-31 04:01:01 -04:00
parent 645f778db5
commit 156e45496f
2 changed files with 3 additions and 5 deletions

View file

@ -8,6 +8,7 @@ import { startOfDay, endOfDay, addWeeks } from 'date-fns';
import { TaskListWidget } from '../widgets/TaskListWidget';
export const WIDGET_STATE_KEY = 'widget:state';
export const WIDGET_NAMES = ['SimplListeSmall', 'SimplListeMedium', 'SimplListeLarge'] as const;
// Legacy keys — used for migration only
const LEGACY_DATA_KEY = 'widget:tasks';
@ -214,7 +215,7 @@ export async function syncWidgetData(): Promise<void> {
await setWidgetState(state);
// Request widget update for all 3 sizes
const widgetNames = ['SimplListeSmall', 'SimplListeMedium', 'SimplListeLarge'];
const widgetNames = WIDGET_NAMES;
for (const widgetName of widgetNames) {
try {
await requestWidgetUpdate({

View file

@ -1,11 +1,9 @@
import type { WidgetTaskHandlerProps } from 'react-native-android-widget';
import { requestWidgetUpdate } from 'react-native-android-widget';
import { TaskListWidget } from './TaskListWidget';
import { getWidgetState, setWidgetState, type WidgetTask } from '../services/widgetSync';
import { getWidgetState, setWidgetState, WIDGET_NAMES, type WidgetTask } from '../services/widgetSync';
import { isValidUUID } from '../lib/validation';
const WIDGET_NAMES = ['SimplListeSmall', 'SimplListeMedium', 'SimplListeLarge'];
const EXPAND_DEBOUNCE_MS = 2000;
const lastExpandTimes = new Map<string, number>();
@ -124,7 +122,6 @@ export async function widgetTaskHandler(
}
await setWidgetState(state);
renderWithState(renderWidget, widgetInfo, state.tasks, state.isDark, state.expandedTaskIds);
await forceWidgetRefresh(state.tasks, state.isDark, state.expandedTaskIds);
try {