@melony/react 0.1.41 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +15 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -777,10 +777,15 @@ var ThreadProvider = ({
|
|
|
777
777
|
initialThreadId: providedInitialThreadId
|
|
778
778
|
}) => {
|
|
779
779
|
const queryClient = reactQuery.useQueryClient();
|
|
780
|
+
const melonyContext = React11.useContext(MelonyContext);
|
|
780
781
|
const [activeThreadId, setActiveThreadId] = nuqs.useQueryState(
|
|
781
782
|
"threadId",
|
|
782
783
|
nuqs.parseAsString
|
|
783
784
|
);
|
|
785
|
+
const prevActiveThreadIdRef = React11.useRef(activeThreadId);
|
|
786
|
+
React11.useEffect(() => {
|
|
787
|
+
prevActiveThreadIdRef.current = activeThreadId;
|
|
788
|
+
}, [activeThreadId]);
|
|
784
789
|
React11.useEffect(() => {
|
|
785
790
|
if (!activeThreadId && providedInitialThreadId) {
|
|
786
791
|
setActiveThreadId(providedInitialThreadId);
|
|
@@ -789,16 +794,24 @@ var ThreadProvider = ({
|
|
|
789
794
|
const {
|
|
790
795
|
data: threads = [],
|
|
791
796
|
isLoading,
|
|
797
|
+
isFetched: isFetchedThreads,
|
|
792
798
|
error: threadsError,
|
|
793
799
|
refetch: refreshThreads
|
|
794
800
|
} = reactQuery.useQuery({
|
|
795
801
|
queryKey: ["threads"],
|
|
796
|
-
queryFn: () => service.getThreads()
|
|
802
|
+
queryFn: () => service.getThreads(),
|
|
803
|
+
staleTime: prevActiveThreadIdRef.current === null && activeThreadId !== null ? Infinity : 0
|
|
797
804
|
});
|
|
805
|
+
const isNewThread = React11.useMemo(() => {
|
|
806
|
+
if (!activeThreadId || !isFetchedThreads) return false;
|
|
807
|
+
return !threads.some((t) => t.id === activeThreadId);
|
|
808
|
+
}, [activeThreadId, threads, isFetchedThreads]);
|
|
798
809
|
const { data: threadEvents = [], isLoading: isLoadingEvents } = reactQuery.useQuery({
|
|
799
810
|
queryKey: ["threads", activeThreadId, "events"],
|
|
800
811
|
queryFn: () => service.getEvents(activeThreadId),
|
|
801
|
-
enabled: !!activeThreadId
|
|
812
|
+
enabled: !!activeThreadId,
|
|
813
|
+
initialData: isNewThread ? melonyContext?.events : void 0,
|
|
814
|
+
staleTime: isNewThread ? Infinity : 0
|
|
802
815
|
});
|
|
803
816
|
const createMutation = reactQuery.useMutation({
|
|
804
817
|
mutationFn: async () => {
|