@teambit/lanes.hooks.use-lanes 0.0.273 → 0.0.275

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.
File without changes
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { LaneId } from '@teambit/lane-id';
3
2
  import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
4
3
  import { FetchMoreLanes, UseLanesOptions } from './use-lanes';
@@ -14,5 +14,6 @@ export type LanesProviderProps = {
14
14
  useScope?: () => {
15
15
  scope?: string;
16
16
  };
17
+ loading?: boolean;
17
18
  };
18
- export declare function LanesProvider({ children, viewedLaneId: viewedIdFromProps, targetLanes, ignoreDerivingFromUrl: ignoreDerivingFromUrlFromProps, skipNetworkCall, options: optionsFromProps, useScope, }: LanesProviderProps): React.JSX.Element;
19
+ export declare function LanesProvider({ children, viewedLaneId: viewedLaneIdProp, targetLanes, ignoreDerivingFromUrl: ignoreDerivingFromUrlProp, skipNetworkCall, options: optionsProp, useScope, loading: loadingFromProps, }: LanesProviderProps): React.JSX.Element;
@@ -30,67 +30,68 @@ const ui_foundation_ui_react_router_use_query_1 = require("@teambit/ui-foundatio
30
30
  const base_react_navigation_link_1 = require("@teambit/base-react.navigation.link");
31
31
  const lanes_context_1 = require("./lanes-context");
32
32
  const use_lanes_1 = require("./use-lanes");
33
- function LanesProvider({ children, viewedLaneId: viewedIdFromProps, targetLanes, ignoreDerivingFromUrl: ignoreDerivingFromUrlFromProps, skipNetworkCall, options: optionsFromProps = {}, useScope, }) {
34
- var _a;
35
- const [lanesState, setLanesState] = (0, react_1.useState)();
36
- const [viewedLaneId, setViewedLaneId] = (0, react_1.useState)(viewedIdFromProps);
33
+ function LanesProvider({ children, viewedLaneId: viewedLaneIdProp, targetLanes, ignoreDerivingFromUrl: ignoreDerivingFromUrlProp, skipNetworkCall, options: optionsProp = {}, useScope, loading: loadingFromProps, }) {
34
+ var _a, _b;
37
35
  const { scope } = (useScope === null || useScope === void 0 ? void 0 : useScope()) || {};
38
- const skip = skipNetworkCall || !!targetLanes;
39
- const options = (0, react_1.useMemo)(() => {
40
- var _a, _b, _c;
41
- return (Object.assign({ skip, ids: (_a = optionsFromProps.ids) !== null && _a !== void 0 ? _a : (viewedLaneId ? [viewedLaneId.toString()] : undefined), offset: (_b = optionsFromProps.offset) !== null && _b !== void 0 ? _b : 0, limit: (_c = optionsFromProps.limit) !== null && _c !== void 0 ? _c : 10 }, optionsFromProps));
42
- }, [skip, optionsFromProps.ids, (_a = optionsFromProps.ids) === null || _a === void 0 ? void 0 : _a.length, viewedLaneId === null || viewedLaneId === void 0 ? void 0 : viewedLaneId.toString()]);
43
- const { lanesModel, loading, hasMore, fetchMoreLanes, offset, limit } = (0, use_lanes_1.useLanes)(targetLanes, skipNetworkCall, options, undefined, scope);
44
- (0, react_1.useEffect)(() => {
45
- if (!loading && lanesModel)
46
- setLanesState(lanesModel);
47
- }, [lanesModel, loading]);
48
- const updateViewedLane = (0, react_1.useCallback)((lane) => {
49
- setViewedLaneId(lane);
50
- setLanesState((state) => {
51
- state === null || state === void 0 ? void 0 : state.setViewedOrDefaultLane(lane);
52
- return state;
53
- });
54
- }, [lanesModel]);
55
- const location = (0, base_react_navigation_link_1.useLocation)();
56
36
  const query = (0, ui_foundation_ui_react_router_use_query_1.useQuery)();
37
+ const location = (0, base_react_navigation_link_1.useLocation)();
38
+ const skip = skipNetworkCall || Boolean(targetLanes);
57
39
  const ignoreDerivingFromUrl = (0, react_1.useCallback)((_location) => {
58
- if (ignoreDerivingFromUrlFromProps)
59
- return ignoreDerivingFromUrlFromProps.some((fn) => fn(_location));
40
+ if (ignoreDerivingFromUrlProp) {
41
+ return ignoreDerivingFromUrlProp.some((fn) => fn(_location));
42
+ }
60
43
  return false;
61
- }, []);
44
+ }, [ignoreDerivingFromUrlProp]);
45
+ const [viewedLaneId, setViewedLaneId] = (0, react_1.useState)(() => {
46
+ if (viewedLaneIdProp)
47
+ return viewedLaneIdProp;
48
+ if (!ignoreDerivingFromUrl(location)) {
49
+ const laneIdFromUrl = (location === null || location === void 0 ? void 0 : location.pathname) ? lanes_ui_models_lanes_model_1.LanesModel.getLaneIdFromPathname(location.pathname, query) : undefined;
50
+ if (laneIdFromUrl)
51
+ return laneIdFromUrl;
52
+ }
53
+ return undefined;
54
+ });
62
55
  (0, react_1.useEffect)(() => {
63
- if (viewedIdFromProps)
64
- updateViewedLane(viewedIdFromProps);
65
- }, [viewedIdFromProps === null || viewedIdFromProps === void 0 ? void 0 : viewedIdFromProps.toString()]);
56
+ if (viewedLaneIdProp)
57
+ setViewedLaneId(viewedLaneIdProp);
58
+ }, [viewedLaneIdProp === null || viewedLaneIdProp === void 0 ? void 0 : viewedLaneIdProp.toString()]);
66
59
  (0, react_1.useEffect)(() => {
67
- var _a, _b;
68
60
  if (ignoreDerivingFromUrl(location))
69
61
  return;
70
- const viewedLaneIdFromUrl = ((location === null || location === void 0 ? void 0 : location.pathname) && lanes_ui_models_lanes_model_1.LanesModel.getLaneIdFromPathname(location === null || location === void 0 ? void 0 : location.pathname, query)) || undefined;
71
- const viewedLaneIdToSet = viewedLaneIdFromUrl ||
72
- viewedLaneId ||
73
- ((_a = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.currentLane) === null || _a === void 0 ? void 0 : _a.id) ||
74
- ((_b = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.lanes.find((lane) => lane.id.isDefault())) === null || _b === void 0 ? void 0 : _b.id);
75
- updateViewedLane(viewedLaneIdToSet);
76
- }, [location === null || location === void 0 ? void 0 : location.pathname]);
77
- (0, react_1.useEffect)(() => {
78
- setLanesState((existing) => {
79
- var _a, _b;
80
- if (!loading && (lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.lanes.length)) {
81
- const state = new lanes_ui_models_lanes_model_1.LanesModel(Object.assign({}, lanesModel));
82
- if (viewedLaneId === undefined && ((_a = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.currentLane) === null || _a === void 0 ? void 0 : _a.id)) {
83
- state.setViewedOrDefaultLane((_b = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.currentLane) === null || _b === void 0 ? void 0 : _b.id);
84
- }
85
- else {
86
- state.setViewedOrDefaultLane(viewedLaneId);
87
- }
88
- return state;
89
- }
90
- return existing;
91
- });
92
- }, [loading, lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.lanes.length, viewedLaneId]);
93
- const lanesContextModel = {
62
+ const laneIdFromUrl = (location === null || location === void 0 ? void 0 : location.pathname) ? lanes_ui_models_lanes_model_1.LanesModel.getLaneIdFromPathname(location.pathname, query) : undefined;
63
+ if (laneIdFromUrl && (!viewedLaneId || !viewedLaneId.isEqual(laneIdFromUrl))) {
64
+ setViewedLaneId(laneIdFromUrl);
65
+ }
66
+ }, [location === null || location === void 0 ? void 0 : location.pathname, query.toString(), viewedLaneId === null || viewedLaneId === void 0 ? void 0 : viewedLaneId.toString(), ignoreDerivingFromUrl]);
67
+ const options = (0, react_1.useMemo)(() => {
68
+ var _a, _b, _c;
69
+ return (Object.assign({ skip, ids: (_a = optionsProp.ids) !== null && _a !== void 0 ? _a : (viewedLaneId ? [viewedLaneId.toString()] : undefined), offset: (_b = optionsProp.offset) !== null && _b !== void 0 ? _b : 0, limit: (_c = optionsProp.limit) !== null && _c !== void 0 ? _c : 10 }, optionsProp));
70
+ }, [skip, optionsProp, viewedLaneId === null || viewedLaneId === void 0 ? void 0 : viewedLaneId.toString()]);
71
+ const { lanesModel, loading: loadingLanesModel, hasMore, fetchMoreLanes, offset, limit, } = (0, use_lanes_1.useLanes)(targetLanes, skipNetworkCall, options, undefined, scope);
72
+ const loading = (0, react_1.useMemo)(() => {
73
+ return loadingFromProps || loadingLanesModel;
74
+ }, [loadingFromProps, loadingLanesModel]);
75
+ const lanesState = (0, react_1.useMemo)(() => {
76
+ var _a, _b;
77
+ if (lanesModel) {
78
+ const newState = new lanes_ui_models_lanes_model_1.LanesModel(Object.assign({}, lanesModel));
79
+ const laneIdToSet = viewedLaneId || ((_a = newState.currentLane) === null || _a === void 0 ? void 0 : _a.id) || ((_b = newState.lanes.find((lane) => lane.id.isDefault())) === null || _b === void 0 ? void 0 : _b.id);
80
+ newState.setViewedOrDefaultLane(laneIdToSet);
81
+ return newState;
82
+ }
83
+ return undefined;
84
+ }, [
85
+ Boolean(lanesModel),
86
+ (_a = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.viewedLane) === null || _a === void 0 ? void 0 : _a.id.toString(),
87
+ viewedLaneId === null || viewedLaneId === void 0 ? void 0 : viewedLaneId.toString(),
88
+ loading,
89
+ lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.lanes.map((lane) => lane.id.toString()).join(','),
90
+ ]);
91
+ const updateViewedLane = (0, react_1.useCallback)((lane) => {
92
+ setViewedLaneId(lane);
93
+ }, []);
94
+ const lanesContextModel = (0, react_1.useMemo)(() => ({
94
95
  lanesModel: lanesState,
95
96
  updateViewedLane,
96
97
  loading,
@@ -99,7 +100,18 @@ function LanesProvider({ children, viewedLaneId: viewedIdFromProps, targetLanes,
99
100
  options,
100
101
  offset,
101
102
  limit,
102
- };
103
+ }), [
104
+ Boolean(lanesState),
105
+ (_b = lanesState === null || lanesState === void 0 ? void 0 : lanesState.viewedLane) === null || _b === void 0 ? void 0 : _b.id.toString(),
106
+ lanesState === null || lanesState === void 0 ? void 0 : lanesState.lanes.map((lane) => lane.id.toString()).join(','),
107
+ updateViewedLane,
108
+ loading,
109
+ hasMore,
110
+ fetchMoreLanes,
111
+ options,
112
+ offset,
113
+ limit,
114
+ ]);
103
115
  return react_1.default.createElement(lanes_context_1.LanesContext.Provider, { value: lanesContextModel }, children);
104
116
  }
105
117
  exports.LanesProvider = LanesProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"lanes-provider.js","sourceRoot":"","sources":["../lanes-provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lanes-provider.js","sourceRoot":"","sources":["../lanes-provider.tsx"],"names":[],"mappings":"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"}
package/dist/use-lanes.js CHANGED
@@ -226,7 +226,7 @@ const useSearchLanes = (search, skip) => {
226
226
  };
227
227
  exports.useSearchLanes = useSearchLanes;
228
228
  const useLanes = (targetLanes, skip, optionsFromProps, useContextFromProps = true, scope) => {
229
- var _a, _b, _c, _d, _e;
229
+ var _a, _b, _c, _d, _e, _f, _g;
230
230
  const context = (0, lanes_context_1.useLanesContext)() || {};
231
231
  const options = optionsFromProps || (context === null || context === void 0 ? void 0 : context.options);
232
232
  const isSameOptions = (0, lodash_1.isEqual)(options, context === null || context === void 0 ? void 0 : context.options);
@@ -235,12 +235,14 @@ const useLanes = (targetLanes, skip, optionsFromProps, useContextFromProps = tru
235
235
  const rootLanesData = useRootLanes((_b = (_a = context === null || context === void 0 ? void 0 : context.lanesModel) === null || _a === void 0 ? void 0 : _a.viewedLane) === null || _b === void 0 ? void 0 : _b.id, shouldSkip, options, scope);
236
236
  const searchResult = (0, exports.useSearchLanes)(options === null || options === void 0 ? void 0 : options.search, shouldSkip);
237
237
  if (targetLanes) {
238
+ if (!targetLanes.viewedLane)
239
+ targetLanes.setViewedLane((_d = (_c = context === null || context === void 0 ? void 0 : context.lanesModel) === null || _c === void 0 ? void 0 : _c.viewedLane) === null || _d === void 0 ? void 0 : _d.id);
238
240
  return Object.assign(Object.assign(Object.assign({}, context), rootLanesData), { lanesModel: targetLanes, searchResult });
239
241
  }
240
242
  if (useContext) {
241
243
  return Object.assign(Object.assign({}, context), { searchResult });
242
244
  }
243
- (_c = rootLanesData.lanesModel) === null || _c === void 0 ? void 0 : _c.setViewedLane((_e = (_d = context === null || context === void 0 ? void 0 : context.lanesModel) === null || _d === void 0 ? void 0 : _d.viewedLane) === null || _e === void 0 ? void 0 : _e.id);
245
+ (_e = rootLanesData.lanesModel) === null || _e === void 0 ? void 0 : _e.setViewedLane((_g = (_f = context === null || context === void 0 ? void 0 : context.lanesModel) === null || _f === void 0 ? void 0 : _f.viewedLane) === null || _g === void 0 ? void 0 : _g.id);
244
246
  return Object.assign(Object.assign(Object.assign({}, context), rootLanesData), { searchResult });
245
247
  };
246
248
  exports.useLanes = useLanes;
@@ -1 +1 @@
1
- {"version":3,"file":"use-lanes.js","sourceRoot":"","sources":["../use-lanes.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA6C;AAC7C,0GAA8E;AAC9E,sFAAyF;AACzF,2CAAqC;AAErC,mCAAiC;AACjC,mDAAkD;AAElD,MAAM,SAAS,GAAG,IAAA,YAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGpB,CAAC;AA2DF,MAAM,YAAY,GAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;IAC7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,oDAAY,EAAa,SAAS,EAAE;QACvE,SAAS,EAAE;YACT,OAAO,EAAE,GAAG;YACZ,MAAM;YACN,KAAK;YACL,IAAI;YACJ,cAAc,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;YACzD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE;QACD,IAAI;QACJ,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,mBAAmB;KACjC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,wCAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;QAC3B,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM;YAAE,OAAO,CAAC,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC;QACxE,OAAO,CAAC,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IACnD,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAmB,IAAA,mBAAW,EAChD,CAAO,SAAS,EAAE,QAAQ,EAAE,EAAE;;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,SAAS,CAAC;oBACxD,SAAS,EAAE;wBACT,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,EAAE;wBACX,cAAc,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;wBACzD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;qBACpE;iBACF,CAAC,CAAC;gBACH,+BAA+B;gBAC/B,MAAM,WAAW,GAAG,aAAa,KAAK,CAAC,CAAC;gBAExC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnC,MAAM,aAAa,GAAG,wCAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1D,OAAO;wBACL,UAAU,EAAE,aAAa;wBACzB,OAAO,EAAE,WAAW;wBACpB,OAAO,EAAE,CAAC,MAAA,MAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,IAAI,QAAQ;wBACvD,UAAU,EAAE,SAAS,GAAG,QAAQ;qBACjC,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,UAAU;oBACV,OAAO,EAAE,WAAW;oBACpB,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,QAAQ;iBACvB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO;YACL,UAAU;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,QAAQ;SACvB,CAAC;IACJ,CAAC,CAAA,EACD,CAAC,OAAO,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,CAChD,CAAC;IAEF,OAAO;QACL,OAAO;QACP,UAAU;QACV,cAAc;QACd,OAAO;QACP,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,cAAc,GAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAC1D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAA,oDAAY,EAAa,SAAS,EAAE;QACvF,SAAS,EAAE;YACT,MAAM;YACN,cAAc,EAAE,IAAI;SACrB;QACD,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM;QACrB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,mBAAmB;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,aAAa;QACtB,UAAU,EACR,UAAU;YACV,wCAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,kCAAO,UAAU,CAAC,KAAK,KAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAE,EAAE,EAAE,CAAC;KACxG,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB;AAEK,MAAM,QAAQ,GAAa,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;;IAC3G,MAAM,OAAO,GAAG,IAAA,+BAAe,GAAE,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,gBAAgB,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,CAAC;IACrD,MAAM,aAAa,GAAG,IAAA,gBAAO,EAAC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,mBAAmB,IAAI,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC;IACrE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC;IACvD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,0CAAE,UAAU,0CAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEjE,IAAI,WAAW,EAAE,CAAC;QAChB,qDACK,OAAO,GACP,aAAa,KAChB,UAAU,EAAE,WAAW,EACvB,YAAY,IACZ;IACJ,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,uCACK,OAAO,KACV,YAAY,IACZ;IACJ,CAAC;IACD,MAAA,aAAa,CAAC,UAAU,0CAAE,aAAa,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,0CAAE,UAAU,0CAAE,EAAE,CAAC,CAAC;IAC7E,qDACK,OAAO,GACP,aAAa,KAChB,YAAY,IACZ;AACJ,CAAC,CAAC;AA7BW,QAAA,QAAQ,YA6BnB"}
1
+ {"version":3,"file":"use-lanes.js","sourceRoot":"","sources":["../use-lanes.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA6C;AAC7C,0GAA8E;AAC9E,sFAAyF;AACzF,2CAAqC;AAErC,mCAAiC;AACjC,mDAAkD;AAElD,MAAM,SAAS,GAAG,IAAA,YAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGpB,CAAC;AA2DF,MAAM,YAAY,GAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;IAC7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,oDAAY,EAAa,SAAS,EAAE;QACvE,SAAS,EAAE;YACT,OAAO,EAAE,GAAG;YACZ,MAAM;YACN,KAAK;YACL,IAAI;YACJ,cAAc,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;YACzD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE;QACD,IAAI;QACJ,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,mBAAmB;KACjC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,wCAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;QAC3B,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM;YAAE,OAAO,CAAC,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC;QACxE,OAAO,CAAC,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IACnD,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAmB,IAAA,mBAAW,EAChD,CAAO,SAAS,EAAE,QAAQ,EAAE,EAAE;;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,SAAS,CAAC;oBACxD,SAAS,EAAE;wBACT,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,EAAE;wBACX,cAAc,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;wBACzD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;qBACpE;iBACF,CAAC,CAAC;gBACH,+BAA+B;gBAC/B,MAAM,WAAW,GAAG,aAAa,KAAK,CAAC,CAAC;gBAExC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnC,MAAM,aAAa,GAAG,wCAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1D,OAAO;wBACL,UAAU,EAAE,aAAa;wBACzB,OAAO,EAAE,WAAW;wBACpB,OAAO,EAAE,CAAC,MAAA,MAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,IAAI,QAAQ;wBACvD,UAAU,EAAE,SAAS,GAAG,QAAQ;qBACjC,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,UAAU;oBACV,OAAO,EAAE,WAAW;oBACpB,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,QAAQ;iBACvB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO;YACL,UAAU;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,QAAQ;SACvB,CAAC;IACJ,CAAC,CAAA,EACD,CAAC,OAAO,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,CAChD,CAAC;IAEF,OAAO;QACL,OAAO;QACP,UAAU;QACV,cAAc;QACd,OAAO;QACP,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,cAAc,GAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAC1D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAA,oDAAY,EAAa,SAAS,EAAE;QACvF,SAAS,EAAE;YACT,MAAM;YACN,cAAc,EAAE,IAAI;SACrB;QACD,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM;QACrB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,mBAAmB;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,aAAa;QACtB,UAAU,EACR,UAAU;YACV,wCAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,kCAAO,UAAU,CAAC,KAAK,KAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAE,EAAE,EAAE,CAAC;KACxG,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB;AAEK,MAAM,QAAQ,GAAa,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;;IAC3G,MAAM,OAAO,GAAG,IAAA,+BAAe,GAAE,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,gBAAgB,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,CAAC;IACrD,MAAM,aAAa,GAAG,IAAA,gBAAO,EAAC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,mBAAmB,IAAI,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC;IACrE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC;IACvD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,0CAAE,UAAU,0CAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEjE,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,UAAU;YAAE,WAAW,CAAC,aAAa,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,0CAAE,UAAU,0CAAE,EAAE,CAAC,CAAC;QAC5F,qDACK,OAAO,GACP,aAAa,KAChB,UAAU,EAAE,WAAW,EACvB,YAAY,IACZ;IACJ,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,uCACK,OAAO,KACV,YAAY,IACZ;IACJ,CAAC;IACD,MAAA,aAAa,CAAC,UAAU,0CAAE,aAAa,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,0CAAE,UAAU,0CAAE,EAAE,CAAC,CAAC;IAC7E,qDACK,OAAO,GACP,aAAa,KAChB,YAAY,IACZ;AACJ,CAAC,CAAC;AA9BW,QAAA,QAAQ,YA8BnB"}
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, useState, useEffect, useCallback, useMemo } from 'react';
1
+ import React, { ReactNode, useMemo, useCallback, useState, useEffect } from 'react';
2
2
  import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
3
3
  import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';
4
4
  import { useLocation, Location } from '@teambit/base-react.navigation.link';
@@ -16,109 +16,128 @@ export type LanesProviderProps = {
16
16
  ignoreDerivingFromUrl?: IgnoreDerivingFromUrl[];
17
17
  options?: UseLaneOptions;
18
18
  useScope?: () => { scope?: string };
19
+ loading?: boolean;
19
20
  };
20
21
 
21
22
  export function LanesProvider({
22
23
  children,
23
- viewedLaneId: viewedIdFromProps,
24
+ viewedLaneId: viewedLaneIdProp,
24
25
  targetLanes,
25
- ignoreDerivingFromUrl: ignoreDerivingFromUrlFromProps,
26
+ ignoreDerivingFromUrl: ignoreDerivingFromUrlProp,
26
27
  skipNetworkCall,
27
- options: optionsFromProps = {},
28
+ options: optionsProp = {},
28
29
  useScope,
30
+ loading: loadingFromProps,
29
31
  }: LanesProviderProps) {
30
- const [lanesState, setLanesState] = useState<LanesModel | undefined>();
31
- const [viewedLaneId, setViewedLaneId] = useState<LaneId | undefined>(viewedIdFromProps);
32
32
  const { scope } = useScope?.() || {};
33
+ const query = useQuery();
34
+ const location = useLocation();
33
35
 
34
- const skip = skipNetworkCall || !!targetLanes;
36
+ const skip = skipNetworkCall || Boolean(targetLanes);
35
37
 
36
- const options = useMemo(
37
- () => ({
38
- skip,
39
- ids: optionsFromProps.ids ?? (viewedLaneId ? [viewedLaneId.toString()] : undefined),
40
- offset: optionsFromProps.offset ?? 0,
41
- limit: optionsFromProps.limit ?? 10,
42
- ...optionsFromProps,
43
- }),
44
- [skip, optionsFromProps.ids, optionsFromProps.ids?.length, viewedLaneId?.toString()]
45
- );
46
-
47
- const { lanesModel, loading, hasMore, fetchMoreLanes, offset, limit } = useLanes(
48
- targetLanes,
49
- skipNetworkCall,
50
- options,
51
- undefined,
52
- scope
53
- );
54
-
55
- useEffect(() => {
56
- if (!loading && lanesModel) setLanesState(lanesModel);
57
- }, [lanesModel, loading]);
58
-
59
- const updateViewedLane = useCallback(
60
- (lane?: LaneId) => {
61
- setViewedLaneId(lane);
62
- setLanesState((state) => {
63
- state?.setViewedOrDefaultLane(lane);
64
- return state;
65
- });
38
+ const ignoreDerivingFromUrl = useCallback(
39
+ (_location?: Location) => {
40
+ if (ignoreDerivingFromUrlProp) {
41
+ return ignoreDerivingFromUrlProp.some((fn) => fn(_location));
42
+ }
43
+ return false;
66
44
  },
67
- [lanesModel]
45
+ [ignoreDerivingFromUrlProp]
68
46
  );
69
47
 
70
- const location = useLocation();
71
- const query = useQuery();
48
+ const [viewedLaneId, setViewedLaneId] = useState<LaneId | undefined>(() => {
49
+ if (viewedLaneIdProp) return viewedLaneIdProp;
72
50
 
73
- const ignoreDerivingFromUrl = useCallback((_location?: Location) => {
74
- if (ignoreDerivingFromUrlFromProps) return ignoreDerivingFromUrlFromProps.some((fn) => fn(_location));
75
- return false;
76
- }, []);
51
+ if (!ignoreDerivingFromUrl(location)) {
52
+ const laneIdFromUrl = location?.pathname ? LanesModel.getLaneIdFromPathname(location.pathname, query) : undefined;
53
+ if (laneIdFromUrl) return laneIdFromUrl;
54
+ }
55
+
56
+ return undefined;
57
+ });
77
58
 
78
59
  useEffect(() => {
79
- if (viewedIdFromProps) updateViewedLane(viewedIdFromProps);
80
- }, [viewedIdFromProps?.toString()]);
60
+ if (viewedLaneIdProp) setViewedLaneId(viewedLaneIdProp);
61
+ }, [viewedLaneIdProp?.toString()]);
81
62
 
82
63
  useEffect(() => {
83
64
  if (ignoreDerivingFromUrl(location)) return;
84
65
 
85
- const viewedLaneIdFromUrl =
86
- (location?.pathname && LanesModel.getLaneIdFromPathname(location?.pathname, query)) || undefined;
87
-
88
- const viewedLaneIdToSet =
89
- viewedLaneIdFromUrl ||
90
- viewedLaneId ||
91
- lanesModel?.currentLane?.id ||
92
- lanesModel?.lanes.find((lane) => lane.id.isDefault())?.id;
66
+ const laneIdFromUrl = location?.pathname ? LanesModel.getLaneIdFromPathname(location.pathname, query) : undefined;
67
+ if (laneIdFromUrl && (!viewedLaneId || !viewedLaneId.isEqual(laneIdFromUrl))) {
68
+ setViewedLaneId(laneIdFromUrl);
69
+ }
70
+ }, [location?.pathname, query.toString(), viewedLaneId?.toString(), ignoreDerivingFromUrl]);
93
71
 
94
- updateViewedLane(viewedLaneIdToSet);
95
- }, [location?.pathname]);
96
-
97
- useEffect(() => {
98
- setLanesState((existing) => {
99
- if (!loading && lanesModel?.lanes.length) {
100
- const state = new LanesModel({ ...lanesModel });
101
- if (viewedLaneId === undefined && lanesModel?.currentLane?.id) {
102
- state.setViewedOrDefaultLane(lanesModel?.currentLane?.id);
103
- } else {
104
- state.setViewedOrDefaultLane(viewedLaneId);
105
- }
106
- return state;
107
- }
108
- return existing;
109
- });
110
- }, [loading, lanesModel?.lanes.length, viewedLaneId]);
72
+ const options = useMemo(
73
+ () => ({
74
+ skip,
75
+ ids: optionsProp.ids ?? (viewedLaneId ? [viewedLaneId.toString()] : undefined),
76
+ offset: optionsProp.offset ?? 0,
77
+ limit: optionsProp.limit ?? 10,
78
+ ...optionsProp,
79
+ }),
80
+ [skip, optionsProp, viewedLaneId?.toString()]
81
+ );
111
82
 
112
- const lanesContextModel: LanesContextModel = {
113
- lanesModel: lanesState,
114
- updateViewedLane,
115
- loading,
83
+ const {
84
+ lanesModel,
85
+ loading: loadingLanesModel,
116
86
  hasMore,
117
87
  fetchMoreLanes,
118
- options,
119
88
  offset,
120
89
  limit,
121
- };
90
+ } = useLanes(targetLanes, skipNetworkCall, options, undefined, scope);
91
+
92
+ const loading = useMemo(() => {
93
+ return loadingFromProps || loadingLanesModel;
94
+ }, [loadingFromProps, loadingLanesModel]);
95
+
96
+ const lanesState = useMemo(() => {
97
+ if (lanesModel) {
98
+ const newState = new LanesModel({ ...lanesModel });
99
+ const laneIdToSet =
100
+ viewedLaneId || newState.currentLane?.id || newState.lanes.find((lane) => lane.id.isDefault())?.id;
101
+ newState.setViewedOrDefaultLane(laneIdToSet);
102
+ return newState;
103
+ }
104
+ return undefined;
105
+ }, [
106
+ Boolean(lanesModel),
107
+ lanesModel?.viewedLane?.id.toString(),
108
+ viewedLaneId?.toString(),
109
+ loading,
110
+ lanesModel?.lanes.map((lane) => lane.id.toString()).join(','),
111
+ ]);
112
+
113
+ const updateViewedLane = useCallback((lane?: LaneId) => {
114
+ setViewedLaneId(lane);
115
+ }, []);
116
+
117
+ const lanesContextModel: LanesContextModel = useMemo(
118
+ () => ({
119
+ lanesModel: lanesState,
120
+ updateViewedLane,
121
+ loading,
122
+ hasMore,
123
+ fetchMoreLanes,
124
+ options,
125
+ offset,
126
+ limit,
127
+ }),
128
+ [
129
+ Boolean(lanesState),
130
+ lanesState?.viewedLane?.id.toString(),
131
+ lanesState?.lanes.map((lane) => lane.id.toString()).join(','),
132
+ updateViewedLane,
133
+ loading,
134
+ hasMore,
135
+ fetchMoreLanes,
136
+ options,
137
+ offset,
138
+ limit,
139
+ ]
140
+ );
122
141
 
123
142
  return <LanesContext.Provider value={lanesContextModel}>{children}</LanesContext.Provider>;
124
143
  }
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@teambit/lanes.hooks.use-lanes",
3
- "version": "0.0.273",
3
+ "version": "0.0.275",
4
4
  "homepage": "https://bit.cloud/teambit/lanes/hooks/use-lanes",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.lanes",
8
8
  "name": "hooks/use-lanes",
9
- "version": "0.0.273"
9
+ "version": "0.0.275"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
13
13
  "core-js": "^3.0.0",
14
14
  "@teambit/lane-id": "0.0.311",
15
- "@teambit/lanes.ui.models.lanes-model": "0.0.221",
16
15
  "@teambit/ui-foundation.ui.react-router.use-query": "0.0.501",
17
- "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.505"
16
+ "@teambit/lanes.ui.models.lanes-model": "0.0.221",
17
+ "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.506"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/react": "^17.0.8",
@@ -30,7 +30,7 @@
30
30
  "@apollo/client": "^3.6.0",
31
31
  "react": "^16.8.0 || ^17.0.0",
32
32
  "react-dom": "^16.8.0 || ^17.0.0",
33
- "@teambit/base-react.navigation.link": "2.0.27"
33
+ "@teambit/base-react.navigation.link": "2.0.31"
34
34
  },
35
35
  "license": "Apache-2.0",
36
36
  "optionalDependencies": {},