Compare commits
4 commits
6328a8d0d3
...
14c208be46
| Author | SHA1 | Date | |
|---|---|---|---|
| 14c208be46 | |||
|
|
156e45496f | ||
|
|
645f778db5 | ||
|
|
82b501e753 |
2 changed files with 24 additions and 3 deletions
|
|
@ -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({
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
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 EXPAND_DEBOUNCE_MS = 2000;
|
||||
|
|
@ -24,6 +25,25 @@ function renderWithState(
|
|||
);
|
||||
}
|
||||
|
||||
async function forceWidgetRefresh(
|
||||
tasks: WidgetTask[],
|
||||
isDark: boolean,
|
||||
expandedTaskIds: string[],
|
||||
): Promise<void> {
|
||||
for (const widgetName of WIDGET_NAMES) {
|
||||
try {
|
||||
await requestWidgetUpdate({
|
||||
widgetName,
|
||||
renderWidget: (props) =>
|
||||
TaskListWidget({ ...props, widgetName, tasks, isDark, expandedTaskIds }),
|
||||
widgetNotFound: () => {},
|
||||
});
|
||||
} catch {
|
||||
// Widget not placed on home screen
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function widgetTaskHandler(
|
||||
props: WidgetTaskHandlerProps
|
||||
): Promise<void> {
|
||||
|
|
@ -102,7 +122,7 @@ 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 {
|
||||
const { toggleComplete } = await import('../db/repository/tasks');
|
||||
|
|
|
|||
Loading…
Reference in a new issue