From fdc7cc340bccb3581e7727accf903391594ef7f3 Mon Sep 17 00:00:00 2001 From: Ken Powers Date: Thu, 12 Dec 2024 20:20:50 -0500 Subject: [PATCH] Update solid in web-next NB: https://github.com/solidjs/solid-start/issues/1679 --- apps/web-next/bun.lockb | Bin 543751 -> 545194 bytes apps/web-next/package.json | 13 ++- apps/web-next/src/components/churches/data.ts | 5 +- .../churches/searchbox/location.tsx | 12 +-- .../churches/searchbox/organization.tsx | 4 +- .../churches/searchbox/searchbox.tsx | 6 +- .../components/churches/searchbox/tags.tsx | 6 +- .../src/components/content/about-stats.tsx | 4 +- .../src/components/navigating-checklist.tsx | 3 +- .../src/components/navigating-date-range.tsx | 3 +- apps/web-next/src/routes/(root).tsx | 4 +- apps/web-next/src/routes/(root)/(watch).tsx | 4 +- .../src/routes/(root)/admin/channels/edit.tsx | 11 +- .../(root)/admin/organizations/edit.tsx | 99 +++++++++--------- .../src/routes/(root)/admin/users/(users).tsx | 4 +- .../src/routes/(root)/admin/users/edit.tsx | 4 +- .../src/routes/(root)/auth/reset-password.tsx | 5 +- .../routes/(root)/channel/[slug]/(slug).tsx | 4 +- .../src/routes/(root)/churches/[slug].tsx | 4 +- .../web-next/src/routes/(root)/media/[id].tsx | 6 +- .../src/routes/(root)/profile/(profile).tsx | 4 +- .../(root)/profile/channels/(channels).tsx | 4 +- .../(root)/profile/channels/[id]/(index).tsx | 4 +- .../(root)/profile/channels/[id]/edit.tsx | 4 +- .../(root)/profile/churches/(churches).tsx | 4 +- .../routes/(root)/profile/churches/edit.tsx | 11 +- apps/web-next/src/routes/(root)/search.tsx | 28 ++--- .../src/routes/(root)/series/[id].tsx | 4 +- .../src/routes/(root)/subscriptions.tsx | 14 ++- apps/web-next/src/routes/(root)/trending.tsx | 16 +-- apps/web-next/src/routes/(root)/upload.tsx | 10 +- apps/web-next/src/routes/embed/churches.tsx | 3 +- apps/web-next/src/routes/embed/media/[id].tsx | 4 +- apps/web-next/src/util/index.ts | 4 + apps/web-next/src/util/url.ts | 7 +- 35 files changed, 177 insertions(+), 145 deletions(-) diff --git a/apps/web-next/bun.lockb b/apps/web-next/bun.lockb index 72c27b981413110f1104e558e661cfb91f223317..242916194c5d3e8fb48ee8ae0ef49bc37cf9b740 100755 GIT binary patch delta 106635 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 delta 105938 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 { searchParams['range'] ?? (searchParams['center'] ? defaultRange : '25000 mi'), center: - (searchParams['center']?.split(',').map(parseFloat).slice(0, 2) as [ - number, - number, - ]) ?? murica, + (unwrapFirst(searchParams['center']) + ?.split(',') + .map(parseFloat) + .slice(0, 2) as [number, number]) ?? murica, })); return parsed; @@ -125,7 +125,7 @@ export function locationState(clearInput: () => unknown) { const [searchParams, setSearchParams] = useSearchParams(); onMount(async () => { - const center = searchParams['center']; + const center = unwrapFirst(searchParams['center']); if (center) { const res = await reverseGeocode( diff --git a/apps/web-next/src/components/churches/searchbox/organization.tsx b/apps/web-next/src/components/churches/searchbox/organization.tsx index 7f115431..9035d0c6 100644 --- a/apps/web-next/src/components/churches/searchbox/organization.tsx +++ b/apps/web-next/src/components/churches/searchbox/organization.tsx @@ -1,7 +1,7 @@ import { For, Show, createMemo, createSignal, onMount } from 'solid-js'; import { useSearchParams } from '@solidjs/router'; import { gql } from 'graphql-request'; -import { type Optional, cn } from '../../../util'; +import { type Optional, cn, unwrapFirst } from '../../../util'; import ListHeading from './list-heading'; import ResultRow from './result-row'; import { getMenuColorClass, optionId } from './util'; @@ -104,7 +104,7 @@ export function organizationState(clearInput: () => unknown) { const orgId = searchParams[organizationSlug]; if (orgId) { - const res = await fetchOrganization(orgId); + const res = await fetchOrganization(unwrapFirst(orgId) ?? ''); setOrganizationLabel(res.name); } }); diff --git a/apps/web-next/src/components/churches/searchbox/searchbox.tsx b/apps/web-next/src/components/churches/searchbox/searchbox.tsx index a2a931b1..4a2090c7 100644 --- a/apps/web-next/src/components/churches/searchbox/searchbox.tsx +++ b/apps/web-next/src/components/churches/searchbox/searchbox.tsx @@ -27,7 +27,7 @@ import { import { TagsMenu, useParsedTags, tagSlug, tagsState } from './tags'; import { optionId } from './util'; import { OrganizationTag } from '~/__generated__/graphql-types'; -import type { Optional } from '~/util'; +import { unwrapFirst, type Optional } from '~/util'; const hiddenOrganization = 'organization'; @@ -152,7 +152,7 @@ export default function Searchbox(props: { hidden?: Optional> }) { } else if (chiclet.slug === organizationSlug) { onClearOrganization(); } else { - const newTags = searchParams[tagSlug] + const newTags = unwrapFirst(searchParams[tagSlug]) ?.split(',') .filter((t) => t !== chiclet.slug); setSearchParams({ @@ -231,7 +231,7 @@ export default function Searchbox(props: { hidden?: Optional> }) { } else if (slug === 'organization') { onClearOrganization(); } else if (slug) { - const newTags = searchParams[tagSlug] + const newTags = unwrapFirst(searchParams[tagSlug]) ?.split(',') .filter((t) => t !== slug); setSearchParams({ diff --git a/apps/web-next/src/components/churches/searchbox/tags.tsx b/apps/web-next/src/components/churches/searchbox/tags.tsx index fbc38d3a..6a9a821d 100644 --- a/apps/web-next/src/components/churches/searchbox/tags.tsx +++ b/apps/web-next/src/components/churches/searchbox/tags.tsx @@ -1,7 +1,7 @@ import { For, Show, createMemo, createSignal, onMount } from 'solid-js'; import { useSearchParams } from '@solidjs/router'; import { gql } from 'graphql-request'; -import { type Optional, cn } from '../../../util'; +import { type Optional, cn, unwrapFirst } from '../../../util'; import ListHeading from './list-heading'; import { getMenuColorClass, getOrgTagCategoryLabel, optionId } from './util'; import ResultRow from './result-row'; @@ -18,7 +18,7 @@ export const useParsedTags = () => { const [searchParams] = useSearchParams(); const parsed = createMemo(() => ({ - tags: searchParams['tag']?.split(',') ?? [], + tags: unwrapFirst(searchParams['tag'])?.split(',') ?? [], })); return parsed; @@ -131,7 +131,7 @@ export function TagsMenu(props: { const [searchParams, setSearchParams] = useSearchParams(); function addTag(tag: OrganizationTagQueryNode) { - const tags = searchParams[tagSlug]?.split(',') ?? []; + const tags = unwrapFirst(searchParams[tagSlug])?.split(',') ?? []; tags.push(tag.slug); setSearchParams({ [tagSlug]: tags.join(',') }); props.clearInput(); diff --git a/apps/web-next/src/components/content/about-stats.tsx b/apps/web-next/src/components/content/about-stats.tsx index f8e0255b..f52fbb2c 100644 --- a/apps/web-next/src/components/content/about-stats.tsx +++ b/apps/web-next/src/components/content/about-stats.tsx @@ -1,13 +1,13 @@ import { gql } from 'graphql-request'; import humanFormat from 'human-format'; -import { cache, createAsync } from '@solidjs/router'; +import { query, createAsync } from '@solidjs/router'; import type { AboutPageDataQuery, AboutPageDataQueryVariables, } from './__generated__/about-stats'; import { getAuthenticatedClient } from '~/util/gql/server'; -const getData = cache(async () => { +const getData = query(async () => { 'use server'; const client = await getAuthenticatedClient(); diff --git a/apps/web-next/src/components/navigating-checklist.tsx b/apps/web-next/src/components/navigating-checklist.tsx index f1da34d7..5ea14998 100644 --- a/apps/web-next/src/components/navigating-checklist.tsx +++ b/apps/web-next/src/components/navigating-checklist.tsx @@ -1,5 +1,6 @@ import { useLocation, useNavigate } from '@solidjs/router'; import { For, type JSX, splitProps } from 'solid-js'; +import { unwrapFirst } from '~/util'; import { setQueryParams } from '~/util/url'; type Link = { label: string; value: string; checked: boolean }; @@ -16,7 +17,7 @@ export default function NavigatingChecklist(props: Props) { const loc = useLocation(); const currentValues = () => - loc.query[local.queryKey]?.split(',').filter(Boolean) ?? []; + unwrapFirst(loc.query[local.queryKey])?.split(',').filter(Boolean) ?? []; function onChange({ value, checked }: { value: string; checked: boolean }) { navigate( diff --git a/apps/web-next/src/components/navigating-date-range.tsx b/apps/web-next/src/components/navigating-date-range.tsx index 45dd9d5c..70d1fdb2 100644 --- a/apps/web-next/src/components/navigating-date-range.tsx +++ b/apps/web-next/src/components/navigating-date-range.tsx @@ -2,6 +2,7 @@ import { type JSX, splitProps } from 'solid-js'; import { useLocation, useNavigate } from '@solidjs/router'; import { Button, Input } from './form'; import { setQueryParams } from '~/util/url'; +import { unwrapFirst } from '~/util'; export type Props = JSX.IntrinsicElements['div'] & { min?: Date | null; @@ -32,7 +33,7 @@ export default function NavigatingDateRange(props: Props) { const currentValues = () => { const [min = dateToIso(local.min), max = dateToIso(local.max)] = - loc.query[local.queryKey]?.split('/').filter(Boolean) ?? []; + unwrapFirst(loc.query[local.queryKey])?.split('/').filter(Boolean) ?? []; return { min, max }; }; diff --git a/apps/web-next/src/routes/(root).tsx b/apps/web-next/src/routes/(root).tsx index efad39f2..ae0764c3 100644 --- a/apps/web-next/src/routes/(root).tsx +++ b/apps/web-next/src/routes/(root).tsx @@ -1,6 +1,6 @@ import { gql } from 'graphql-request'; import { ParentProps } from 'solid-js'; -import { type RouteDefinition, cache, createAsync } from '@solidjs/router'; +import { type RouteDefinition, createAsync, query } from '@solidjs/router'; import { Title } from '@solidjs/meta'; import type { MeQuery } from './__generated__/(root)'; import Footer from '~/components/footer'; @@ -11,7 +11,7 @@ import MediaHeader from '~/components/media/header'; import { isChurchesPage } from '~/util/routing'; import { cn } from '~/util'; -const getMe = cache(async function () { +const getMe = query(async function () { 'use server'; const client = await getAuthenticatedClient(); diff --git a/apps/web-next/src/routes/(root)/(watch).tsx b/apps/web-next/src/routes/(root)/(watch).tsx index 7fae9887..47d60fac 100644 --- a/apps/web-next/src/routes/(root)/(watch).tsx +++ b/apps/web-next/src/routes/(root)/(watch).tsx @@ -1,6 +1,6 @@ import { Show } from 'solid-js'; import { gql } from 'graphql-request'; -import { A, cache, createAsync } from '@solidjs/router'; +import { A, createAsync, query } from '@solidjs/router'; import { Link } from '@solidjs/meta'; import SubscribeIcon from '@tabler/icons/outline/rss.svg?component-solid'; import type { @@ -15,7 +15,7 @@ import Newsletter from '~/components/newsletter'; import { useUser } from '~/util/user-context'; import Og from '~/components/og'; -const getHomepageData = cache(async function () { +const getHomepageData = query(async function () { 'use server'; const client = await getAuthenticatedClient(); const res = await client.request< diff --git a/apps/web-next/src/routes/(root)/admin/channels/edit.tsx b/apps/web-next/src/routes/(root)/admin/channels/edit.tsx index cc267125..025d1dcf 100644 --- a/apps/web-next/src/routes/(root)/admin/channels/edit.tsx +++ b/apps/web-next/src/routes/(root)/admin/channels/edit.tsx @@ -4,11 +4,11 @@ import { Show } from 'solid-js'; import { type RouteDefinition, action, - cache, createAsync, redirect, useSubmission, useLocation, + query, } from '@solidjs/router'; import { AdminChannelEditRouteDataQuery, @@ -19,6 +19,7 @@ import { import { UpsertForm } from '~/components/admin/upsert-form'; import { PageHeading } from '~/components/page-heading'; import { getAdminClientOrRedirect } from '~/util/gql/server'; +import { unwrapFirst } from '~/util'; const UpsertChannelSchema = z.object({ channelId: z.string().nullable(), @@ -27,7 +28,7 @@ const UpsertChannelSchema = z.object({ description: z.string().nullable(), }); -const loadChannel = cache(async (id: string | null) => { +const loadChannel = query(async (id: string | null) => { 'use server'; const client = await getAdminClientOrRedirect(); @@ -56,7 +57,7 @@ const loadChannel = cache(async (id: string | null) => { export const route = { load: ({ location }) => { - void loadChannel(location.query['id'] ?? null); + void loadChannel(unwrapFirst(location.query['id'])); }, } satisfies RouteDefinition; @@ -99,7 +100,9 @@ const upsertChannel = action(async (form: FormData) => { export default function AdminChannelsEditRoute() { const location = useLocation(); - const data = createAsync(() => loadChannel(location.query['id'] ?? null)); + const data = createAsync(() => + loadChannel(unwrapFirst(location.query['id'])), + ); const submission = useSubmission(upsertChannel); return ( diff --git a/apps/web-next/src/routes/(root)/admin/organizations/edit.tsx b/apps/web-next/src/routes/(root)/admin/organizations/edit.tsx index 21f491ca..528dc9a6 100644 --- a/apps/web-next/src/routes/(root)/admin/organizations/edit.tsx +++ b/apps/web-next/src/routes/(root)/admin/organizations/edit.tsx @@ -1,13 +1,13 @@ import { gql } from 'graphql-request'; import * as z from 'zod'; import { Show } from 'solid-js'; -import { decodeJwt } from 'jose'; +// import { decodeJwt } from 'jose'; import { action, - cache, createAsync, redirect, - useSubmission, + // useSubmission, + query, } from '@solidjs/router'; import { getRequestEvent } from 'solid-js/web'; import { @@ -16,7 +16,7 @@ import { AdminUpsertOrganizationMutation, AdminUpsertOrganizationMutationVariables, } from './__generated__/edit'; -import { UpsertForm } from '~/components/admin/upsert-form'; +// import { UpsertForm } from '~/components/admin/upsert-form'; import { PageHeading } from '~/components/page-heading'; import { getAdminClientOrRedirect } from '~/util/gql/server'; @@ -28,16 +28,16 @@ const UpsertOrganizationSchema = z.object({ addressJwt: z.string().nullable(), }); -const ParseJwtSchema = z.object({ - label: z.string(), -}); - -function renderLabelFromJwt(jwt: string) { - const decoded = decodeJwt(jwt); - return ParseJwtSchema.parse(decoded).label; -} +// const ParseJwtSchema = z.object({ +// label: z.string(), +// }); -const loadOrganization = cache(async () => { +// function renderLabelFromJwt(jwt: string) { +// const decoded = decodeJwt(jwt); +// return ParseJwtSchema.parse(decoded).label; +// } +// +const loadOrganization = query(async () => { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); @@ -129,7 +129,7 @@ const upsertOrganization = action(async (form: FormData) => { export default function AdminOrganizationsEditRoute() { const data = createAsync(() => loadOrganization()); - const submission = useSubmission(upsertOrganization); + // const submission = useSubmission(upsertOrganization); return ( <> @@ -141,41 +141,42 @@ export default function AdminOrganizationsEditRoute() { {(id) => } - [], - // TODO: maybe just one prop: valueAsString? - renderValue: (val) => (val ? renderLabelFromJwt(val) : ''), - renderMenuValue: (val) => renderLabelFromJwt(val), - }, - ], - }, - ]} - defaultValues={{ - name: data()?.organizationById?.name ?? '', - type: data()?.organizationById?.type ?? 'MINISTRY', - slug: data()?.organizationById?.slug ?? '', - }} - submitting={submission.pending} - /> +

TODO

+ {/* [], */} + {/* // TODO: maybe just one prop: valueAsString? */} + {/* renderValue: (val) => (val ? renderLabelFromJwt(val) : ''), */} + {/* renderMenuValue: (val) => renderLabelFromJwt(val), */} + {/* }, */} + {/* ], */} + {/* }, */} + {/* ]} */} + {/* defaultValues={{ */} + {/* name: data()?.organizationById?.name ?? '', */} + {/* type: data()?.organizationById?.type ?? 'MINISTRY', */} + {/* slug: data()?.organizationById?.slug ?? '', */} + {/* }} */} + {/* submitting={submission.pending} */} + {/* /> */} ); diff --git a/apps/web-next/src/routes/(root)/admin/users/(users).tsx b/apps/web-next/src/routes/(root)/admin/users/(users).tsx index a95a37e6..539e68d6 100644 --- a/apps/web-next/src/routes/(root)/admin/users/(users).tsx +++ b/apps/web-next/src/routes/(root)/admin/users/(users).tsx @@ -1,5 +1,5 @@ import { gql } from 'graphql-request'; -import { type RouteDefinition, cache, createAsync, A } from '@solidjs/router'; +import { type RouteDefinition, A, createAsync, query } from '@solidjs/router'; import { getRequestEvent } from 'solid-js/web'; import { AdminUsersRouteQuery, @@ -13,7 +13,7 @@ import Pagination from '~/components/pagination'; const PAGE_SIZE = 60; -const loadUsers = cache(async () => { +const loadUsers = query(async () => { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); diff --git a/apps/web-next/src/routes/(root)/admin/users/edit.tsx b/apps/web-next/src/routes/(root)/admin/users/edit.tsx index 7fd1e742..5e2c26d2 100644 --- a/apps/web-next/src/routes/(root)/admin/users/edit.tsx +++ b/apps/web-next/src/routes/(root)/admin/users/edit.tsx @@ -4,10 +4,10 @@ import { Show } from 'solid-js'; import { type RouteDefinition, createAsync, - cache, action, redirect, useSubmission, + query, } from '@solidjs/router'; import { getRequestEvent } from 'solid-js/web'; import { @@ -30,7 +30,7 @@ const UpsertUserSchema = z.object({ newPassword: z.string().nullable(), }); -const loadUser = cache(async () => { +const loadUser = query(async () => { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); diff --git a/apps/web-next/src/routes/(root)/auth/reset-password.tsx b/apps/web-next/src/routes/(root)/auth/reset-password.tsx index c43d87e7..9011696b 100644 --- a/apps/web-next/src/routes/(root)/auth/reset-password.tsx +++ b/apps/web-next/src/routes/(root)/auth/reset-password.tsx @@ -15,13 +15,14 @@ import { Button, LabeledInput } from '~/components/form'; import { Turnstile } from '~/components/turnstile'; import validateTurnstile from '~/util/server/validate-turnstile'; import { getAuthenticatedClient } from '~/util/gql/server'; +import { unwrapFirst } from '~/util'; const ResetPasswordSchema = z.object({ id: z.string().uuid(), password: z.string(), }); -const routeData = async (id?: string) => { +const routeData = async (id?: string | null) => { 'use server'; if (!id) { throw redirect('/'); @@ -60,7 +61,7 @@ const resetPassword = action(async (form: FormData) => { export default function ResetPasswordRoute() { const location = useLocation(); - const data = createAsync(() => routeData(location.query['id'])); + const data = createAsync(() => routeData(unwrapFirst(location.query['id']))); const submission = useSubmission(resetPassword); return ( diff --git a/apps/web-next/src/routes/(root)/channel/[slug]/(slug).tsx b/apps/web-next/src/routes/(root)/channel/[slug]/(slug).tsx index 44d846a6..943dcc11 100644 --- a/apps/web-next/src/routes/(root)/channel/[slug]/(slug).tsx +++ b/apps/web-next/src/routes/(root)/channel/[slug]/(slug).tsx @@ -3,9 +3,9 @@ import { For } from 'solid-js'; import { gql } from 'graphql-request'; import { type RouteDefinition, - cache, createAsync, useParams, + query, } from '@solidjs/router'; import { getRequestEvent } from 'solid-js/web'; import { Link } from '@solidjs/meta'; @@ -21,7 +21,7 @@ import { UploadCardFields } from '~/util/gql/fragments'; const PAGE_SIZE = 60; -const loadChannel = cache(async (slug: string) => { +const loadChannel = query(async (slug: string) => { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); diff --git a/apps/web-next/src/routes/(root)/churches/[slug].tsx b/apps/web-next/src/routes/(root)/churches/[slug].tsx index 7020bfa8..fce2771f 100644 --- a/apps/web-next/src/routes/(root)/churches/[slug].tsx +++ b/apps/web-next/src/routes/(root)/churches/[slug].tsx @@ -1,8 +1,8 @@ import { type RouteDefinition, - cache, useParams, createAsync, + query, } from '@solidjs/router'; import WorldIcon from '@tabler/icons/outline/world.svg?component-solid'; import MailIcon from '@tabler/icons/outline/mail.svg?component-solid'; @@ -19,7 +19,7 @@ import { Avatar } from '~/components/avatar'; import Chiclet from '~/components/churches/searchbox/chiclet'; import { OrganizationAddressType } from '~/__generated__/graphql-types'; -const loadChurch = cache(async (slug: string) => { +const loadChurch = query(async (slug: string) => { 'use server'; invariant(slug, 'Missing slug'); diff --git a/apps/web-next/src/routes/(root)/media/[id].tsx b/apps/web-next/src/routes/(root)/media/[id].tsx index 8cf4326c..7f7da121 100644 --- a/apps/web-next/src/routes/(root)/media/[id].tsx +++ b/apps/web-next/src/routes/(root)/media/[id].tsx @@ -12,14 +12,14 @@ import { gql } from 'graphql-request'; import { type RouteDefinition, action, - cache, createAsync, redirect, useLocation, useParams, useSubmission, - A, useAction, + query, + A, } from '@solidjs/router'; import { Title } from '@solidjs/meta'; import type { @@ -73,7 +73,7 @@ const recordView = async (id: string) => { return res; }; -const loadMediaMetadata = cache(async (id: string) => { +const loadMediaMetadata = query(async (id: string) => { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); diff --git a/apps/web-next/src/routes/(root)/profile/(profile).tsx b/apps/web-next/src/routes/(root)/profile/(profile).tsx index ad78924a..52860bec 100644 --- a/apps/web-next/src/routes/(root)/profile/(profile).tsx +++ b/apps/web-next/src/routes/(root)/profile/(profile).tsx @@ -4,9 +4,9 @@ import delay from 'delay'; import { gql } from 'graphql-request'; import { action, - cache, createAsync, type RouteDefinition, + query, } from '@solidjs/router'; import type { CreateAvatarUploadMutation, @@ -45,7 +45,7 @@ const fields: Array = [ }, ]; -const loadData = cache(async () => { +const loadData = query(async () => { 'use server'; const client = await getAuthenticatedClientOrRedirect(); return await client.request< diff --git a/apps/web-next/src/routes/(root)/profile/channels/(channels).tsx b/apps/web-next/src/routes/(root)/profile/channels/(channels).tsx index f45daa25..7fe2e247 100644 --- a/apps/web-next/src/routes/(root)/profile/channels/(channels).tsx +++ b/apps/web-next/src/routes/(root)/profile/channels/(channels).tsx @@ -1,12 +1,12 @@ import { For } from 'solid-js'; import { gql } from 'graphql-request'; -import { type RouteDefinition, cache, createAsync } from '@solidjs/router'; +import { type RouteDefinition, createAsync, query } from '@solidjs/router'; import type { MyChannelsQuery } from './__generated__/(channels)'; import ChannelCard from '~/components/channel-card'; import { PageHeading } from '~/components/page-heading'; import { getAuthenticatedClientOrRedirect } from '~/util/gql/server'; -const loadChannels = cache(async () => { +const loadChannels = query(async () => { 'use server'; const client = await getAuthenticatedClientOrRedirect(); diff --git a/apps/web-next/src/routes/(root)/profile/channels/[id]/(index).tsx b/apps/web-next/src/routes/(root)/profile/channels/[id]/(index).tsx index 6160108e..0095d5f3 100644 --- a/apps/web-next/src/routes/(root)/profile/channels/[id]/(index).tsx +++ b/apps/web-next/src/routes/(root)/profile/channels/[id]/(index).tsx @@ -1,7 +1,7 @@ import { For } from 'solid-js'; import invariant from 'tiny-invariant'; import { gql } from 'graphql-request'; -import { type RouteDefinition, cache, createAsync } from '@solidjs/router'; +import { type RouteDefinition, createAsync, query } from '@solidjs/router'; import { getRequestEvent } from 'solid-js/web'; import type { ProfileChannelsQuery, @@ -15,7 +15,7 @@ import { UploadCardFields } from '~/util/gql/fragments'; const PAGE_SIZE = 60; -const loadChannel = cache(async function () { +const loadChannel = query(async function () { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); diff --git a/apps/web-next/src/routes/(root)/profile/channels/[id]/edit.tsx b/apps/web-next/src/routes/(root)/profile/channels/[id]/edit.tsx index 02c4b847..1216e881 100644 --- a/apps/web-next/src/routes/(root)/profile/channels/[id]/edit.tsx +++ b/apps/web-next/src/routes/(root)/profile/channels/[id]/edit.tsx @@ -5,9 +5,9 @@ import { gql } from 'graphql-request'; import { getRequestEvent } from 'solid-js/web'; import { action, - cache, createAsync, type RouteDefinition, + query, } from '@solidjs/router'; import type { CreateChannelFileUploadMutation, @@ -28,7 +28,7 @@ import { UploadPostProcess } from '~/__generated__/graphql-types'; import { doMultipartUpload } from '~/util/multipart-upload'; import { Avatar } from '~/components/avatar'; -const loadChannel = cache(async () => { +const loadChannel = query(async () => { 'use server'; const event = getRequestEvent(); const url = new URL(event?.request.url ?? ''); diff --git a/apps/web-next/src/routes/(root)/profile/churches/(churches).tsx b/apps/web-next/src/routes/(root)/profile/churches/(churches).tsx index 9191c2b9..a6f01ab0 100644 --- a/apps/web-next/src/routes/(root)/profile/churches/(churches).tsx +++ b/apps/web-next/src/routes/(root)/profile/churches/(churches).tsx @@ -1,5 +1,5 @@ import { For } from 'solid-js'; -import { type RouteDefinition, cache, createAsync, A } from '@solidjs/router'; +import { type RouteDefinition, A, createAsync, query } from '@solidjs/router'; import { gql } from 'graphql-request'; import type { MyChurchesQuery, @@ -8,7 +8,7 @@ import type { import { PageHeading } from '~/components/page-heading'; import { getAuthenticatedClientOrRedirect } from '~/util/gql/server'; -const loadChurches = cache(async () => { +const loadChurches = query(async () => { 'use server'; const client = await getAuthenticatedClientOrRedirect(); diff --git a/apps/web-next/src/routes/(root)/profile/churches/edit.tsx b/apps/web-next/src/routes/(root)/profile/churches/edit.tsx index 42b73578..b5a8cceb 100644 --- a/apps/web-next/src/routes/(root)/profile/churches/edit.tsx +++ b/apps/web-next/src/routes/(root)/profile/churches/edit.tsx @@ -1,9 +1,9 @@ import { Show } from 'solid-js'; import { type RouteDefinition, - cache, createAsync, useLocation, + query, } from '@solidjs/router'; import { gql } from 'graphql-request'; import invariant from 'tiny-invariant'; @@ -14,8 +14,9 @@ import { import { getAuthenticatedClientOrRedirect } from '~/util/gql/server'; import { PageHeading } from '~/components/page-heading'; import ChurchForm from '~/components/settings/church-form'; +import { unwrapFirst } from '~/util'; -const loadChurch = cache(async (id: string) => { +const loadChurch = query(async (id: string) => { 'use server'; invariant(id, 'No ID provided'); @@ -96,7 +97,7 @@ const loadChurch = cache(async (id: string) => { export const route = { load: ({ location }) => { - const id = location.query['id']; + const id = unwrapFirst(location.query['id']); invariant(id, 'No ID provided'); void loadChurch(id); }, @@ -104,7 +105,9 @@ export const route = { export default function AdminOrganizationsEditRoute() { const location = useLocation(); - const data = createAsync(() => loadChurch(location.query['id'] ?? '')); + const data = createAsync(() => + loadChurch(unwrapFirst(location.query['id']) ?? ''), + ); return ( <> diff --git a/apps/web-next/src/routes/(root)/search.tsx b/apps/web-next/src/routes/(root)/search.tsx index a2643592..3c982550 100644 --- a/apps/web-next/src/routes/(root)/search.tsx +++ b/apps/web-next/src/routes/(root)/search.tsx @@ -17,14 +17,14 @@ import { A, type RouteDefinition, type Location, - cache, - useLocation, createAsync, + useLocation, + query, } from '@solidjs/router'; import type { SearchQuery, SearchQueryVariables } from './__generated__/search'; import Pagination from '~/components/pagination'; import { SearchFocus, SearchOrder } from '~/__generated__/graphql-types'; -import { cn, formatTime } from '~/util'; +import { cn, formatTime, unwrapFirst } from '~/util'; import FloatingDiv from '~/components/floating-div'; import NavigatingBooleans from '~/components/navigating-booleans'; import NavigatingChecklist from '~/components/navigating-checklist'; @@ -40,7 +40,7 @@ import { getAuthenticatedClient } from '~/util/gql/server'; const PAGE_SIZE = 20; -const loadData = cache(async function ( +const loadData = query(async function ( q = '', focus = 'uploads', after: string | null = null, @@ -173,13 +173,14 @@ const loadData = cache(async function ( function getRouteArgs(location: Location) { return [ - location.query['q'], - location.query['focus'], - location.query['after'], - location.query['before'], - location.query['publishedAt'], - location.query['orderBy'], - location.query['channels']?.split(',').filter(Boolean), + unwrapFirst(location.query['q']), + unwrapFirst(location.query['focus']), + unwrapFirst(location.query['after']), + unwrapFirst(location.query['before']), + unwrapFirst(location.query['publishedAt']), + unwrapFirst(location.query['orderBy']), + // TODO: use standard query parsing + unwrapFirst(location.query['channels'])?.split(',').filter(Boolean), (location.query['transcriptPhraseSearch'] ?? 'true') === 'true', ] as const; } @@ -348,7 +349,8 @@ export default function SearchRoute() { new URLSearchParams(location.search).get('channels')?.split(',').length ?? 0; const channelsValues = () => - location.query['channels']?.split(',').filter(Boolean) ?? []; + // TODO: use standard query parsing + unwrapFirst(location.query['channels'])?.split(',').filter(Boolean) ?? []; const channelsOptions = () => data()?.search.aggs.channels.map(({ channel }) => ({ label: channel.name, @@ -404,7 +406,7 @@ export default function SearchRoute() { > {({ title, focus, count }) => ( { void loadData( - location.query['after'] ?? null, - location.query['before'] ?? null, + unwrapFirst(location.query['after']), + unwrapFirst(location.query['before']), ); }, } satisfies RouteDefinition; @@ -76,7 +77,10 @@ export const route = { export default function SubscriptionsRoute() { const location = useLocation(); const data = createAsync(() => - loadData(location.query['after'] ?? null, location.query['before'] ?? null), + loadData( + unwrapFirst(location.query['after']), + unwrapFirst(location.query['before']), + ), ); return ( diff --git a/apps/web-next/src/routes/(root)/trending.tsx b/apps/web-next/src/routes/(root)/trending.tsx index d1b626ec..8a448528 100644 --- a/apps/web-next/src/routes/(root)/trending.tsx +++ b/apps/web-next/src/routes/(root)/trending.tsx @@ -1,9 +1,9 @@ import { gql } from 'graphql-request'; import { type RouteDefinition, - cache, - useLocation, createAsync, + useLocation, + query, } from '@solidjs/router'; import type { TrendingRouteDataQuery, @@ -13,10 +13,11 @@ import { getAuthenticatedClientOrRedirect } from '~/util/gql/server'; import { UploadCardFields } from '~/util/gql/fragments'; import { UploadGrid } from '~/components/upload-grid'; import Pagination from '~/components/pagination'; +import { unwrapFirst } from '~/util'; const PAGE_SIZE = 60; -const loadData = cache(async function ( +const loadData = query(async function ( after: string | null, before: string | null, ) { @@ -68,8 +69,8 @@ const loadData = cache(async function ( export const route = { load: ({ location }) => { void loadData( - location.query['after'] ?? null, - location.query['before'] ?? null, + unwrapFirst(location.query['after']), + unwrapFirst(location.query['before']), ); }, } satisfies RouteDefinition; @@ -77,7 +78,10 @@ export const route = { export default function TrendingRoute() { const location = useLocation(); const data = createAsync(() => - loadData(location.query['after'] ?? null, location.query['before'] ?? null), + loadData( + unwrapFirst(location.query['after']), + unwrapFirst(location.query['before']), + ), ); return ( diff --git a/apps/web-next/src/routes/(root)/upload.tsx b/apps/web-next/src/routes/(root)/upload.tsx index f4cc45e6..2b7216c4 100644 --- a/apps/web-next/src/routes/(root)/upload.tsx +++ b/apps/web-next/src/routes/(root)/upload.tsx @@ -11,7 +11,6 @@ import { z } from 'zod'; import invariant from 'tiny-invariant'; import { gql } from 'graphql-request'; import { - cache, redirect, createAsync, action, @@ -19,6 +18,7 @@ import { type RouteDefinition, useLocation, useAction, + query, } from '@solidjs/router'; import type { UploadRouteDataQuery, @@ -38,7 +38,7 @@ import { UploadVisibility, type Channel, } from '~/__generated__/graphql-types'; -import { notEmpty, type Optional } from '~/util'; +import { notEmpty, unwrapFirst, type Optional } from '~/util'; import { doMultipartUpload } from '~/util/multipart-upload'; import { Input, Select, Button, Radios, Textarea } from '~/components/form'; import { dateToIso8601 } from '~/util/date'; @@ -248,7 +248,7 @@ function getSections( ]; } -const routeData = cache(async (id: string | null) => { +const routeData = query(async (id: string | null) => { 'use server'; const client = await getAuthenticatedClientOrRedirect(); const res = await client.request< @@ -304,7 +304,7 @@ const routeData = cache(async (id: string | null) => { export const route = { load: ({ location }) => { - void routeData(location.query['id'] ?? null); + void routeData(unwrapFirst(location.query['id'])); }, } satisfies RouteDefinition; @@ -447,7 +447,7 @@ async function finalizeUpload(variables: FinalizeMediaUploadMutationVariables) { export default function UploadRoute() { const location = useLocation(); - const data = createAsync(() => routeData(location.query['id'] ?? null)); + const data = createAsync(() => routeData(unwrapFirst(location.query['id']))); const upsertAction = useAction(upsert); const upsertSubmission = useSubmission(upsert); diff --git a/apps/web-next/src/routes/embed/churches.tsx b/apps/web-next/src/routes/embed/churches.tsx index 07cead86..6b64c1e8 100644 --- a/apps/web-next/src/routes/embed/churches.tsx +++ b/apps/web-next/src/routes/embed/churches.tsx @@ -1,6 +1,7 @@ import { useSearchParams } from '@solidjs/router'; import { clientOnly } from '@solidjs/start'; import { Delay } from '~/components/delay'; +import { unwrapFirst } from '~/util'; const Client = clientOnly(async () => { return import('~/components/churches/churches'); @@ -9,7 +10,7 @@ const Client = clientOnly(async () => { export default function EmbedChurchesRoute() { const [searchParams] = useSearchParams(); - const hidden = searchParams['hidden']?.split(',') ?? []; + const hidden = unwrapFirst(searchParams['hidden'])?.split(',') ?? []; return ( { +const loadMediaMetadata = query(async (id: string) => { 'use server'; invariant(id, 'Missing id'); diff --git a/apps/web-next/src/util/index.ts b/apps/web-next/src/util/index.ts index fb63bf2c..bfbd53bf 100644 --- a/apps/web-next/src/util/index.ts +++ b/apps/web-next/src/util/index.ts @@ -63,3 +63,7 @@ export function useLoginLocation() { export function easeOutExpo(x: number): number { return x === 1 ? 1 : 1 - Math.pow(2, -10 * x); } + +export function unwrapFirst(val?: string | string[] | null): string | null { + return Array.isArray(val) ? (val[0] ?? null) : (val ?? null); +} diff --git a/apps/web-next/src/util/url.ts b/apps/web-next/src/util/url.ts index 27628229..8d2c9536 100644 --- a/apps/web-next/src/util/url.ts +++ b/apps/web-next/src/util/url.ts @@ -1,8 +1,11 @@ +import { type SearchParams } from '@solidjs/router/dist/types'; + export function setQueryParams( - current: ConstructorParameters[0], + current: SearchParams | string, params: Record>, ) { - const searchParams = new URLSearchParams(current); + const searchParams = new URLSearchParams(current.toString()); + for (const [key, value] of Object.entries(params)) { if (value && value.length > 0) { searchParams.set(key, Array.isArray(value) ? value.join(',') : value);