From d7326ed53f35202c16bf297c366ad4da14e5ab2d Mon Sep 17 00:00:00 2001 From: Kim Ode Date: Wed, 2 Oct 2024 10:03:10 +0200 Subject: [PATCH] new-shell: Add isFetchedAfterMount --- packages/mst-query/package-lock.json | 4 ++-- packages/mst-query/package.json | 2 +- packages/mst-query/src/MstQueryHandler.ts | 8 ++++++++ packages/mst-query/src/hooks.ts | 3 ++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/mst-query/package-lock.json b/packages/mst-query/package-lock.json index 4d4a221..a5bc531 100644 --- a/packages/mst-query/package-lock.json +++ b/packages/mst-query/package-lock.json @@ -1,12 +1,12 @@ { "name": "mst-query", - "version": "3.4.0-canary.11", + "version": "3.4.0-canary.15", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mst-query", - "version": "3.4.0-canary.11", + "version": "3.4.0-canary.15", "license": "MIT", "dependencies": { "@wry/equality": "^0.4.0" diff --git a/packages/mst-query/package.json b/packages/mst-query/package.json index 4b2c08b..7bb894c 100644 --- a/packages/mst-query/package.json +++ b/packages/mst-query/package.json @@ -1,6 +1,6 @@ { "name": "mst-query", - "version": "3.4.0-canary.11", + "version": "3.4.0-canary.15", "description": "Query library for mobx-state-tree", "source": "src/index.ts", "main": "dist/mst-query.js", diff --git a/packages/mst-query/src/MstQueryHandler.ts b/packages/mst-query/src/MstQueryHandler.ts index 7f3c416..3734763 100644 --- a/packages/mst-query/src/MstQueryHandler.ts +++ b/packages/mst-query/src/MstQueryHandler.ts @@ -50,10 +50,15 @@ export class QueryObserver { options: any; isQuery: boolean; isMounted = false; + isFetchedAfterMount = false; constructor(query: any, isQuery: boolean) { this.query = query; this.isQuery = isQuery; + + makeObservable(this, { + isFetchedAfterMount: observable, + }); } subscribe() { @@ -375,6 +380,9 @@ export class MstQueryHandler { if (!this.isFetched) { this.isFetched = true; } + this.queryObservers.forEach((observer) => { + observer.isFetchedAfterMount = true; + }); if (this.model.isMutation) { this.notify({ onMutate: true }, data, this.model); diff --git a/packages/mst-query/src/hooks.ts b/packages/mst-query/src/hooks.ts index 2594a97..dc2cbc0 100644 --- a/packages/mst-query/src/hooks.ts +++ b/packages/mst-query/src/hooks.ts @@ -1,5 +1,5 @@ import { getSnapshot, getType, Instance, isStateTreeNode, SnapshotIn } from 'mobx-state-tree'; -import { useCallback, useContext, useEffect, useRef, useState } from 'react'; +import { useContext, useEffect, useRef, useState } from 'react'; import { VolatileQuery, MutationReturnType, QueryReturnType } from './create'; import { Context } from './QueryClientProvider'; import { QueryClient } from './QueryClient'; @@ -81,6 +81,7 @@ export function useQuery>( query: query, refetch: query.refetch, isStale: query.__MstQueryHandler.isStale(options), + isFetchedAfterMount: observer.isFetchedAfterMount, }; }