diff --git a/hooks/useCreateOrganization.ts b/hooks/useCreateOrganization.ts index 05e873b95..f2d8837b6 100644 --- a/hooks/useCreateOrganization.ts +++ b/hooks/useCreateOrganization.ts @@ -32,7 +32,7 @@ const useCreateOrganization = () => { if (response.ok) { const data = await response.json(); // Invalidate the organizations query to refetch - await queryClient.invalidateQueries({ queryKey: ["userOrganizations"] }); + await queryClient.invalidateQueries({ queryKey: ["accountOrganizations"] }); // Select the new org setSelectedOrgId(data.organization.id); // Reset and close diff --git a/hooks/useInitialArtists.tsx b/hooks/useInitialArtists.tsx index 83fa4f95a..d894bbf35 100644 --- a/hooks/useInitialArtists.tsx +++ b/hooks/useInitialArtists.tsx @@ -30,9 +30,12 @@ const useInitialArtists = ( useEffect(() => { const savedArtist = selections[orgKey]; if (savedArtist && Object.keys(savedArtist).length > 0) { - setSelectedArtist(savedArtist); + // Only update if the saved artist differs from current selection + if (savedArtist.account_id !== selectedArtist?.account_id) { + setSelectedArtist(savedArtist); + } } - }, [orgKey, selections, setSelectedArtist]); + }, [orgKey, selections, selectedArtist?.account_id, setSelectedArtist]); // Update selected artist with fresh data from artists list useEffect(() => { @@ -41,10 +44,13 @@ const useInitialArtists = ( (artist: ArtistRecord) => artist.account_id === selectedArtist.account_id, ); - if (currentArtist && !selectedArtist?.isWrapped) + if (currentArtist && !selectedArtist?.isWrapped) { setSelectedArtist(currentArtist); + // Persist fresh data to localStorage so page reload shows updated image + saveSelection(currentArtist); + } } - }, [artists, selectedArtist, setSelectedArtist]); + }, [artists, selectedArtist, setSelectedArtist, saveSelection]); const handleSelectArtist = (artist: ArtistRecord | null) => { setSelectedArtist(artist); diff --git a/hooks/useOrgSettings.ts b/hooks/useOrgSettings.ts index 291681083..d40846edd 100644 --- a/hooks/useOrgSettings.ts +++ b/hooks/useOrgSettings.ts @@ -1,4 +1,5 @@ import { useState, useEffect, useRef, useCallback } from "react"; +import { useQueryClient } from "@tanstack/react-query"; import { uploadFile } from "@/lib/arweave/uploadFile"; import { getFileMimeType } from "@/utils/getFileMimeType"; import { NEW_API_BASE_URL } from "@/lib/consts"; @@ -20,6 +21,7 @@ interface OrgData { const useOrgSettings = (orgId: string | null) => { const { data: organizations } = useAccountOrganizations(); + const queryClient = useQueryClient(); const [orgData, setOrgData] = useState(null); const [name, setName] = useState(""); const [image, setImage] = useState(""); @@ -154,13 +156,15 @@ const useOrgSettings = (orgId: string | null) => { if (response.ok) { const data = await response.json(); setOrgData(data.data); + // Invalidate org list cache so sidebar shows updated image/name immediately + await queryClient.invalidateQueries({ queryKey: ["accountOrganizations"] }); return true; } return false; } finally { setIsSaving(false); } - }, [orgId, name, image, instruction, knowledges]); + }, [orgId, name, image, instruction, knowledges, queryClient]); return { orgData,