1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | 'use strict';
|
12 |
|
13 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14 |
|
15 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
16 |
|
17 | var getPaginationMetadata = require('./getPaginationMetadata');
|
18 |
|
19 | var useLoadMoreFunction = require('./useLoadMoreFunction');
|
20 |
|
21 | var useRefetchableFragmentNode = require('./useRefetchableFragmentNode');
|
22 |
|
23 | var useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');
|
24 |
|
25 | var _require = require('react'),
|
26 | useCallback = _require.useCallback,
|
27 | useState = _require.useState;
|
28 |
|
29 | var _require2 = require('relay-runtime'),
|
30 | getFragment = _require2.getFragment,
|
31 | getFragmentIdentifier = _require2.getFragmentIdentifier;
|
32 |
|
33 | function useLegacyPaginationFragment(fragmentInput, parentFragmentRef) {
|
34 | var fragmentNode = getFragment(fragmentInput);
|
35 | useStaticFragmentNodeWarning(fragmentNode, 'first argument of useLegacyPaginationFragment()');
|
36 | var componentDisplayName = 'useLegacyPaginationFragment()';
|
37 |
|
38 | var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),
|
39 | connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,
|
40 | fragmentRefPathInResponse = _getPaginationMetadat.fragmentRefPathInResponse,
|
41 | paginationRequest = _getPaginationMetadat.paginationRequest,
|
42 | paginationMetadata = _getPaginationMetadat.paginationMetadata;
|
43 |
|
44 | var _useRefetchableFragme = useRefetchableFragmentNode(fragmentNode, parentFragmentRef, componentDisplayName),
|
45 | fragmentData = _useRefetchableFragme.fragmentData,
|
46 | fragmentRef = _useRefetchableFragme.fragmentRef,
|
47 | refetch = _useRefetchableFragme.refetch;
|
48 |
|
49 | var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);
|
50 |
|
51 | var _useLoadMore = useLoadMore({
|
52 | direction: 'backward',
|
53 | fragmentNode: fragmentNode,
|
54 | fragmentRef: fragmentRef,
|
55 | fragmentIdentifier: fragmentIdentifier,
|
56 | fragmentData: fragmentData,
|
57 | connectionPathInFragmentData: connectionPathInFragmentData,
|
58 | fragmentRefPathInResponse: fragmentRefPathInResponse,
|
59 | paginationRequest: paginationRequest,
|
60 | paginationMetadata: paginationMetadata,
|
61 | componentDisplayName: componentDisplayName
|
62 | }),
|
63 | loadPrevious = _useLoadMore[0],
|
64 | hasPrevious = _useLoadMore[1],
|
65 | isLoadingPrevious = _useLoadMore[2],
|
66 | disposeFetchPrevious = _useLoadMore[3];
|
67 |
|
68 |
|
69 | var _useLoadMore2 = useLoadMore({
|
70 | direction: 'forward',
|
71 | fragmentNode: fragmentNode,
|
72 | fragmentRef: fragmentRef,
|
73 | fragmentIdentifier: fragmentIdentifier,
|
74 | fragmentData: fragmentData,
|
75 | connectionPathInFragmentData: connectionPathInFragmentData,
|
76 | fragmentRefPathInResponse: fragmentRefPathInResponse,
|
77 | paginationRequest: paginationRequest,
|
78 | paginationMetadata: paginationMetadata,
|
79 | componentDisplayName: componentDisplayName
|
80 | }),
|
81 | loadNext = _useLoadMore2[0],
|
82 | hasNext = _useLoadMore2[1],
|
83 | isLoadingNext = _useLoadMore2[2],
|
84 | disposeFetchNext = _useLoadMore2[3];
|
85 |
|
86 | var refetchPagination = useCallback(function (variables, options) {
|
87 | disposeFetchNext();
|
88 | disposeFetchPrevious();
|
89 | return refetch(variables, (0, _objectSpread2["default"])({}, options, {
|
90 | __environment: undefined
|
91 | }));
|
92 | }, [disposeFetchNext, disposeFetchPrevious, refetch]);
|
93 | return {
|
94 | data: fragmentData,
|
95 | loadNext: loadNext,
|
96 | loadPrevious: loadPrevious,
|
97 | hasNext: hasNext,
|
98 | hasPrevious: hasPrevious,
|
99 | isLoadingNext: isLoadingNext,
|
100 | isLoadingPrevious: isLoadingPrevious,
|
101 | refetch: refetchPagination
|
102 | };
|
103 | }
|
104 |
|
105 | function useLoadMore(args) {
|
106 | var _useState = useState(false),
|
107 | isLoadingMore = _useState[0],
|
108 | setIsLoadingMore = _useState[1];
|
109 |
|
110 | var observer = {
|
111 | start: function start() {
|
112 | return setIsLoadingMore(true);
|
113 | },
|
114 | complete: function complete() {
|
115 | return setIsLoadingMore(false);
|
116 | },
|
117 | error: function error() {
|
118 | return setIsLoadingMore(false);
|
119 | }
|
120 | };
|
121 |
|
122 | var handleReset = function handleReset() {
|
123 | return setIsLoadingMore(false);
|
124 | };
|
125 |
|
126 | var _useLoadMoreFunction = useLoadMoreFunction((0, _objectSpread2["default"])({}, args, {
|
127 | observer: observer,
|
128 | onReset: handleReset
|
129 | })),
|
130 | loadMore = _useLoadMoreFunction[0],
|
131 | hasMore = _useLoadMoreFunction[1],
|
132 | disposeFetch = _useLoadMoreFunction[2];
|
133 |
|
134 | return [loadMore, hasMore, isLoadingMore, disposeFetch];
|
135 | }
|
136 |
|
137 | module.exports = useLegacyPaginationFragment; |
\ | No newline at end of file |