Skip to content

Commit 7628b7e

Browse files
committed
Refactor UseQueryStateDefaultResult into separate types for readability
1 parent e7ea549 commit 7628b7e

File tree

1 file changed

+50
-36
lines changed

1 file changed

+50
-36
lines changed

packages/toolkit/src/query/react/buildHooks.ts

Lines changed: 50 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -718,44 +718,58 @@ type UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> =
718718
isError: false
719719
}
720720

721+
type UseQueryStateUninitialized<D extends QueryDefinition<any, any, any, any>> =
722+
TSHelpersOverride<
723+
Extract<UseQueryStateBaseResult<D>, { status: QueryStatus.uninitialized }>,
724+
{ isUninitialized: true }
725+
>
726+
727+
type UseQueryStateLoading<D extends QueryDefinition<any, any, any, any>> =
728+
TSHelpersOverride<
729+
UseQueryStateBaseResult<D>,
730+
{ isLoading: true; isFetching: boolean; data: undefined }
731+
>
732+
733+
type UseQueryStateSuccessFetching<
734+
D extends QueryDefinition<any, any, any, any>,
735+
> = TSHelpersOverride<
736+
UseQueryStateBaseResult<D>,
737+
{
738+
isSuccess: true
739+
isFetching: true
740+
error: undefined
741+
} & {
742+
data: ResultTypeFrom<D>
743+
} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>
744+
>
745+
746+
type UseQueryStateSuccessNotFetching<
747+
D extends QueryDefinition<any, any, any, any>,
748+
> = TSHelpersOverride<
749+
UseQueryStateBaseResult<D>,
750+
{
751+
isSuccess: true
752+
isFetching: false
753+
error: undefined
754+
} & {
755+
data: ResultTypeFrom<D>
756+
currentData: ResultTypeFrom<D>
757+
} & Required<Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>>
758+
>
759+
760+
type UseQueryStateError<D extends QueryDefinition<any, any, any, any>> =
761+
TSHelpersOverride<
762+
UseQueryStateBaseResult<D>,
763+
{ isError: true } & Required<Pick<UseQueryStateBaseResult<D>, 'error'>>
764+
>
765+
721766
type UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> =
722767
TSHelpersId<
723-
| TSHelpersOverride<
724-
Extract<
725-
UseQueryStateBaseResult<D>,
726-
{ status: QueryStatus.uninitialized }
727-
>,
728-
{ isUninitialized: true }
729-
>
730-
| TSHelpersOverride<
731-
UseQueryStateBaseResult<D>,
732-
| { isLoading: true; isFetching: boolean; data: undefined }
733-
| ({
734-
isSuccess: true
735-
isFetching: true
736-
error: undefined
737-
} & {
738-
data: ResultTypeFrom<D>
739-
} & Required<
740-
Pick<UseQueryStateBaseResult<D>, 'fulfilledTimeStamp'>
741-
>)
742-
| ({
743-
isSuccess: true
744-
isFetching: false
745-
error: undefined
746-
} & {
747-
data: ResultTypeFrom<D>
748-
currentData: ResultTypeFrom<D>
749-
} & Required<
750-
Pick<
751-
UseQueryStateBaseResult<D>,
752-
'fulfilledTimeStamp'
753-
>
754-
>)
755-
| ({ isError: true } & Required<
756-
Pick<UseQueryStateBaseResult<D>, 'error'>
757-
>)
758-
>
768+
| UseQueryStateUninitialized<D>
769+
| UseQueryStateLoading<D>
770+
| UseQueryStateSuccessFetching<D>
771+
| UseQueryStateSuccessNotFetching<D>
772+
| UseQueryStateError<D>
759773
> & {
760774
/**
761775
* @deprecated Included for completeness, but discouraged.

0 commit comments

Comments
 (0)