From 4e2282ca12aba903cf6ab50517f1a5a2960c2d8a Mon Sep 17 00:00:00 2001 From: Zander Martineau Date: Thu, 9 Nov 2023 17:15:10 +0000 Subject: [PATCH] Fix bugs with last commit --- src/components/BookmarkForm.tsx | 7 ++++--- src/components/CmdK/CmdK.tsx | 6 +----- src/components/CmdK/fetchSearch.ts | 3 +-- src/components/FeedItemActions.tsx | 3 +-- src/components/FeedItemFooter.tsx | 5 ++--- src/components/UpdateInfoForm.tsx | 3 +-- src/components/UserProvider.tsx | 5 ++--- src/hooks/useClickBookmark.ts | 3 +-- src/hooks/useRealtime.ts | 5 ++--- src/utils/supabase/client.ts | 5 +++-- 10 files changed, 18 insertions(+), 27 deletions(-) diff --git a/src/components/BookmarkForm.tsx b/src/components/BookmarkForm.tsx index d628e90..b49f151 100644 --- a/src/components/BookmarkForm.tsx +++ b/src/components/BookmarkForm.tsx @@ -28,6 +28,7 @@ import { CONTENT, DEFAULT_BOOKMARK_FORM_URL_PLACEHOLDER } from '../constants'; import { useToggle } from '../hooks/useToggle'; import { MetadataResponse } from '../types/api'; import { type Bookmark, type BookmarkFormValues } from '../types/db'; +import { Database } from '../types/supabase'; import { MetaTag, getDbMetadata } from '../utils/fetching/meta'; import { getScrapeData } from '../utils/fetching/scrape'; import { getErrorMessage } from '../utils/get-error-message'; @@ -76,7 +77,7 @@ export const BookmarkForm = ({ const isNew = type === 'new'; const router = useRouter(); const bookmarkformClass = cn(className, 'bookmark-form flex flex-col gap-s'); - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const [formSubmitting, , setFormSubmitting] = useToggle(false); const [bookmarkTags, setBookmarkTags] = useState([]); const [formError, setFormError] = useState(''); @@ -128,7 +129,7 @@ export const BookmarkForm = ({ } else { await supabaseClient .from('bookmarks') - .update({ ...formData, modified_at: new Date() }) + .update({ ...formData, modified_at: new Date().toString() }) .match({ id }); toast({ title: 'Item edited', @@ -219,7 +220,7 @@ export const BookmarkForm = ({ const { data } = await supabaseClient.rpc('check_url', { url_input: url.hostname, }); - setPossibleMatchingItems(data); + setPossibleMatchingItems(data as Bookmark[]); } catch (err) { setPossibleMatchingItems(null); } diff --git a/src/components/CmdK/CmdK.tsx b/src/components/CmdK/CmdK.tsx index b5147e7..a62a4b4 100644 --- a/src/components/CmdK/CmdK.tsx +++ b/src/components/CmdK/CmdK.tsx @@ -76,10 +76,6 @@ export const CmdK = ({ serverDbMeta }: CmdKProps) => { const [tweetItems, setTweetItems] = useState([]); const [searchTerm, setSearchTerm] = useState(''); const dbMeta = serverDbMeta; - // useRealtimeDictionary({ - // table: 'bookmarks', - // initialData: serverDbMeta, - // }); const handleSetGroupByDate = (newState: boolean) => { if (profile?.settings_group_by_date !== newState) { @@ -93,7 +89,7 @@ export const CmdK = ({ serverDbMeta }: CmdKProps) => { const throttledMutate = throttle(async (value: string) => { await fetchSearch(value).then((data) => { - setBookmarkItems(data?.bookmarksSearch?.data ?? []); + setBookmarkItems((data?.bookmarksSearch?.data as Bookmark[]) ?? []); setTweetItems(data?.tweetsSearch?.data ?? []); }); }, 500); diff --git a/src/components/CmdK/fetchSearch.ts b/src/components/CmdK/fetchSearch.ts index 02f3b51..25800e5 100644 --- a/src/components/CmdK/fetchSearch.ts +++ b/src/components/CmdK/fetchSearch.ts @@ -1,10 +1,9 @@ 'use client'; -import { Database } from '@/src/types/supabase'; import { createBrowserClient } from '@/src/utils/supabase/client'; export const fetchSearch = async (searchTerm: string) => { - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const bookmarksSearch = await supabaseClient .from('bookmarks') .select('*', { count: 'exact' }) diff --git a/src/components/FeedItemActions.tsx b/src/components/FeedItemActions.tsx index 2826be6..1903b3a 100644 --- a/src/components/FeedItemActions.tsx +++ b/src/components/FeedItemActions.tsx @@ -16,7 +16,6 @@ import urlJoin from 'proper-url-join'; import { useClickBookmark } from '../hooks/useClickBookmark'; import { useToggle } from '../hooks/useToggle'; -import { Database } from '../types/supabase'; import { createBrowserClient } from '../utils/supabase/client'; import { BookmarkFeedItemProps } from './BookmarkFeedItem'; import { BookmarkForm } from './BookmarkForm'; @@ -40,7 +39,7 @@ export const FeedItemActions = ({ allowDeletion, isInFeed = true, }: FeedItemActionsProps) => { - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const [isToggled, , setToggleState] = useToggle(); const router = useRouter(); const handleClickRegister = useClickBookmark(); diff --git a/src/components/FeedItemFooter.tsx b/src/components/FeedItemFooter.tsx index b70555b..0658560 100644 --- a/src/components/FeedItemFooter.tsx +++ b/src/components/FeedItemFooter.tsx @@ -17,7 +17,6 @@ import title from 'title'; import { useClickBookmark } from '../hooks/useClickBookmark'; import { Bookmark } from '../types/db'; -import { Database } from '../types/supabase'; import { getRelativeDate } from '../utils/dates'; import { fullPath } from '../utils/fullPath'; import { simpleUrl } from '../utils/simpleUrl'; @@ -39,7 +38,7 @@ export interface FeedItemFooterProps extends Bookmark { } export const FeedItemFooter = (props: FeedItemFooterProps) => { - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const { url, tags, @@ -65,7 +64,7 @@ export const FeedItemFooter = (props: FeedItemFooterProps) => { .from('bookmarks') .update({ star: !star, - modified_at: new Date(), + modified_at: new Date().toString(), }) .match({ id }); }; diff --git a/src/components/UpdateInfoForm.tsx b/src/components/UpdateInfoForm.tsx index 35580d1..aa01abc 100644 --- a/src/components/UpdateInfoForm.tsx +++ b/src/components/UpdateInfoForm.tsx @@ -7,7 +7,6 @@ import React, { useState } from 'react'; import { useForm } from 'react-hook-form'; import { useToggle } from '../hooks/useToggle'; -import { Database } from '../types/supabase'; import { getErrorMessage } from '../utils/get-error-message'; import { createBrowserClient } from '../utils/supabase/client'; import { FormGroup } from './FormGroup'; @@ -22,7 +21,7 @@ interface UpdateInfoProps { } export const UpdateInfoForm = ({ user }: UpdateInfoProps) => { - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const [formError, setFormError] = useState(''); const [formSubmitting, , setFormSubmitting] = useToggle(); const { diff --git a/src/components/UserProvider.tsx b/src/components/UserProvider.tsx index 0b10393..fd0dced 100644 --- a/src/components/UserProvider.tsx +++ b/src/components/UserProvider.tsx @@ -4,7 +4,6 @@ import { ReactNode, createContext, useCallback, useContext } from 'react'; import { useRealtimeProfile } from '../hooks/useRealtime'; import { UserProfile } from '../types/db'; -import { Database } from '../types/supabase'; import { createBrowserClient } from '../utils/supabase/client'; export type UseUpdateReturn = (action: UIStateAction) => void; @@ -41,7 +40,7 @@ interface UserProviderProps extends Pick { export const UserProvider = ({ children, id, profile }: UserProviderProps) => { const realtimeProfile = useRealtimeProfile(profile); - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const handleUpdateUISettings = useCallback( async (action: UIStateAction) => { @@ -63,7 +62,7 @@ export const UserProvider = ({ children, id, profile }: UserProviderProps) => { } await supabaseClient .from('profiles') - .update({ [column]: value, updated_at: new Date() }) + .update({ [column]: value, updated_at: new Date().toString() }) .match({ id }); }, [id, realtimeProfile?.settings_pinned_tags, supabaseClient], diff --git a/src/hooks/useClickBookmark.ts b/src/hooks/useClickBookmark.ts index 3a4efdc..c3ae197 100644 --- a/src/hooks/useClickBookmark.ts +++ b/src/hooks/useClickBookmark.ts @@ -1,10 +1,9 @@ 'use client'; -import { Database } from '../types/supabase'; import { createBrowserClient } from '../utils/supabase/client'; export const useClickBookmark = () => { - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); const handleClickRegister = async (id: string) => { const selectItem = await supabaseClient diff --git a/src/hooks/useRealtime.ts b/src/hooks/useRealtime.ts index 9a1521e..b006a49 100644 --- a/src/hooks/useRealtime.ts +++ b/src/hooks/useRealtime.ts @@ -3,7 +3,6 @@ import { useEffect, useState } from 'react'; import { Bookmark, UserProfile } from '../types/db'; -import { Database } from '../types/supabase'; import { createBrowserClient } from '../utils/supabase/client'; import { FeedItemModel } from './useGroupByDate'; @@ -21,7 +20,7 @@ export const useRealtimeFeed = ({ table = 'bookmarks', }: RealtimeFeedProps) => { const [items, setItems] = useState(initialData); - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); useEffect(() => { setItems(initialData); @@ -88,7 +87,7 @@ export const useRealtimeFeed = ({ */ export const useRealtimeProfile = (initialData: UserProfile | null) => { const [profile, setProfile] = useState(initialData); - const supabaseClient = createBrowserClient(); + const supabaseClient = createBrowserClient(); useEffect(() => { setProfile(initialData); diff --git a/src/utils/supabase/client.ts b/src/utils/supabase/client.ts index 9b1fd5a..5feb9a8 100644 --- a/src/utils/supabase/client.ts +++ b/src/utils/supabase/client.ts @@ -1,7 +1,8 @@ +import { Database } from '@/src/types/supabase'; import { createBrowserClient as _createBrowserClient } from '@supabase/ssr'; -export const createBrowserClient = () => - _createBrowserClient( +export const createBrowserClient = () => + _createBrowserClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, );