Add support for iOS and android widgets

This commit is contained in:
Mo Tarbin
2026-07-18 17:10:23 -04:00
parent 74d658f928
commit b73586f81b
42 changed files with 2898 additions and 14 deletions

View File

@@ -77,7 +77,7 @@ const MyChores = () => {
const queryClient = useQueryClient()
const { impersonatedUser } = useImpersonateUser()
const Navigate = useNavigate()
const [searchParams] = useSearchParams()
const [searchParams, setSearchParams] = useSearchParams()
const { data: userLabels, isLoading: userLabelsLoading } = useLabels()
const { data: projects = [], isLoading: projectsLoading } = useProjects()
const {
@@ -439,6 +439,18 @@ const MyChores = () => {
setSelectedProjectWithCache,
])
// Widget "+" deep link (donetick://chores/add → /chores?add_task=1):
// open the quick-add modal once and strip the param so back/refresh
// doesn't re-trigger it.
useEffect(() => {
if (searchParams.get('add_task') === '1') {
setAddTaskModalOpen(true)
const params = new URLSearchParams(searchParams)
params.delete('add_task')
setSearchParams(params, { replace: true })
}
}, [searchParams, setSearchParams])
// Read and apply filters from URL parameters
useEffect(() => {
// Check for filterId (camelCase) or filter_id (snake_case) for advanced filters