@pihanga2/core 0.3.2 → 0.3.4

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/router.js CHANGED
@@ -1,6 +1,7 @@
1
- import { createBrowserHistory } from 'history';
2
- import { getLogger } from './logger';
3
- import { registerActions } from './redux';
1
+ import { createBrowserHistory } from "history";
2
+ import { getLogger } from "./logger";
3
+ import { createOnAction, registerActions } from "./redux";
4
+ import { DEF_REDUCER_PRIORITY, } from "./types";
4
5
  const logger = getLogger("router");
5
6
  export const browserHistory = createBrowserHistory();
6
7
  // type Route = {
@@ -9,33 +10,38 @@ export const browserHistory = createBrowserHistory();
9
10
  // url: string
10
11
  // fromBrowser?: boolean
11
12
  // }
12
- export const ACTION_TYPES = registerActions('pi/router', ['show_page', 'navigate_to_page']);
13
+ export const ACTION_TYPES = registerActions("pi/router", [
14
+ "show_page",
15
+ "navigate_to_page",
16
+ ]);
13
17
  export const onShowPage = createOnAction(ACTION_TYPES.SHOW_PAGE);
14
18
  export const showPage = (dispatch, path, query) => {
15
19
  dispatch(createShowPageAction(path, query));
16
20
  };
17
21
  export const createShowPageAction = (path, query) => ({
18
22
  type: ACTION_TYPES.SHOW_PAGE,
19
- path, query, fromBrowser: false
23
+ path,
24
+ query,
25
+ fromBrowser: false,
20
26
  });
21
27
  export const onNavigateToPage = createOnAction(ACTION_TYPES.NAVIGATE_TO_PAGE);
22
28
  export const ON_INIT_ACTION = "pi/start";
23
29
  export const onInit = createOnAction(ON_INIT_ACTION);
24
- export function currentRoute(pathPrefix = '') {
30
+ export function currentRoute(pathPrefix = "") {
25
31
  const f = route_functions(pathPrefix);
26
32
  const r2 = f.url2route(window.location.href);
27
33
  const r = f.location2route(browserHistory.location);
28
34
  return r;
29
35
  }
30
- export function init(reducer, pathPrefix = '') {
36
+ export function init(reducer, pathPrefix = "") {
31
37
  let workingURL;
32
38
  const f = route_functions(pathPrefix);
33
39
  browserHistory.listen(({ action, location }) => {
34
40
  // location is an object like window.location
35
41
  const { url } = f.location2route(location);
36
42
  if (workingURL !== url) {
37
- logger.info('browser history:', url, action);
38
- setTimeout(() => navigateToPage(url, action === 'POP'));
43
+ logger.info("browser history:", url, action);
44
+ setTimeout(() => navigateToPage(url, action === "POP"));
39
45
  }
40
46
  });
41
47
  function browserPath() {
@@ -60,7 +66,7 @@ export function init(reducer, pathPrefix = '') {
60
66
  ...r,
61
67
  });
62
68
  return state;
63
- });
69
+ }, DEF_REDUCER_PRIORITY, "@builtin:router:NAVIGATE_TO_PAGE");
64
70
  reducer.register(ACTION_TYPES.SHOW_PAGE, (state, { path, query = {}, fromBrowser = false }) => {
65
71
  const route = f.pathl2route(path, query);
66
72
  workingURL = route.url;
@@ -75,17 +81,16 @@ export function init(reducer, pathPrefix = '') {
75
81
  fromBrowser,
76
82
  };
77
83
  return state;
78
- });
79
- reducer.register('@@INIT', (state) => {
84
+ }, DEF_REDUCER_PRIORITY, "@builtin:router:SHOW_PAGE");
85
+ reducer.register("@@INIT", (state) => {
80
86
  const url = browserPath().url;
81
87
  logger.info(`Request navigation to '${url}'`);
82
88
  setTimeout(() => navigateToPage(url, true));
83
89
  return state;
84
- });
90
+ }, DEF_REDUCER_PRIORITY, "@builtin:router:@@INIT");
85
91
  return f.location2route(browserHistory.location);
86
92
  }
87
- ;
88
- function route_functions(pathPrefix = '') {
93
+ function route_functions(pathPrefix = "") {
89
94
  const location2route = (location) => {
90
95
  const [p, s] = [location.pathname, location.search];
91
96
  const url = s ? `${p}${s}` : p;
@@ -93,34 +98,39 @@ function route_functions(pathPrefix = '') {
93
98
  };
94
99
  const url2route = (url) => {
95
100
  const [pn, search] = url.split("?");
96
- const path = pn.substring(pathPrefix.length).split('/').filter(s => s !== '');
101
+ const path = pn
102
+ .substring(pathPrefix.length)
103
+ .split("/")
104
+ .filter((s) => s !== "");
97
105
  const query = {};
98
106
  const s = search;
99
107
  if (s && s.length > 0) {
100
- s.split('&').forEach((el) => {
101
- const [k, v] = el.split('=');
108
+ s.split("&").forEach((el) => {
109
+ const [k, v] = el.split("=");
102
110
  query[decodeURI(k)] = v ? decodeURI(v) : true;
103
111
  });
104
112
  }
105
113
  return { url, path, query };
106
114
  };
107
115
  const pathl2route = (path, query) => {
108
- let url = `${pathPrefix}/${path.join('/')}`;
116
+ let url = `${pathPrefix}/${path.join("/")}`;
109
117
  if (query) {
110
118
  const qa = Object.entries(query);
111
119
  if (qa.length > 0) {
112
- const s = qa.map(([k, v]) => {
120
+ const s = qa
121
+ .map(([k, v]) => {
113
122
  const n = encodeURI(k);
114
- if (typeof v === 'boolean') {
123
+ if (typeof v === "boolean") {
115
124
  return n;
116
125
  }
117
- else if (typeof v === 'number') {
126
+ else if (typeof v === "number") {
118
127
  return `${n}=${v}`;
119
128
  }
120
129
  else {
121
130
  return `${n}=${encodeURI(v)}`;
122
131
  }
123
- }).join('&');
132
+ })
133
+ .join("&");
124
134
  url = `${url}?${s}`;
125
135
  }
126
136
  }
@@ -128,9 +138,4 @@ function route_functions(pathPrefix = '') {
128
138
  };
129
139
  return { location2route, url2route, pathl2route };
130
140
  }
131
- function createOnAction(actionType) {
132
- return (register, f) => {
133
- register.reducer.register(actionType, f);
134
- };
135
- }
136
141
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/card.tsx","../src/index.ts","../src/logger.ts","../src/reducer.ts","../src/redux.ts","../src/register_cards.ts","../src/root.tsx","../src/router.ts","../src/store.ts","../src/types.ts","../src/rest/delete.ts","../src/rest/enums.ts","../src/rest/get.ts","../src/rest/index.ts","../src/rest/postputpatch.ts","../src/rest/types.ts","../src/rest/utils.ts"],"version":"5.6.3"}
1
+ {"root":["../src/card.tsx","../src/index.ts","../src/logger.ts","../src/reducer.ts","../src/redux.ts","../src/register_cards.ts","../src/root.tsx","../src/router.ts","../src/store.ts","../src/types.ts","../src/rest/delete.ts","../src/rest/enums.ts","../src/rest/get.ts","../src/rest/index.ts","../src/rest/postputpatch.ts","../src/rest/types.ts","../src/rest/utils.ts"],"version":"5.7.2"}
package/dist/types.d.ts CHANGED
@@ -35,8 +35,9 @@ export interface PiReducer {
35
35
  dispatch: DispatchF;
36
36
  dispatchFromReducer: DispatchF;
37
37
  }
38
+ export declare const DEF_REDUCER_PRIORITY = 0;
38
39
  export type PiRegisterReducerF = <S extends ReduxState, A extends ReduxAction>(eventType: string, mapper: ReduceF<S, A>, // (state: S, action: A, dispatch: DispatchF) => S,
39
- priority?: number, key?: string) => PiReducerCancelF;
40
+ priority?: number, key?: string, targetMapper?: ReduceF<S, A>) => PiReducerCancelF;
40
41
  export type PiReducerCancelF = () => void;
41
42
  export type PiRegisterOneShotReducerF = <S extends ReduxState, A extends ReduxAction>(eventType: string, mapper: ReduceOnceF<S, A>, priority?: number) => void;
42
43
  export type PiDefCtxtProps = {
@@ -74,12 +75,12 @@ export type StateMapperContext<C> = {
74
75
  };
75
76
  export type PiMapProps<CType, S extends ReduxState, EType = {}, C = PiDefCtxtProps> = {
76
77
  [Property in keyof CType]: CType[Property] | StateMapper<CType[Property], S, C>;
77
- } & EventHandler<EType, S> & EventMapper<EType>;
78
+ } & EventHandler<EType, S> & EventMapper<EType, C>;
78
79
  export type EventHandler<T, S extends ReduxState> = {
79
80
  [Key in keyof T]?: ReduceF<S, T[Key] & ReduxAction>;
80
81
  };
81
- export type EventMapper<T> = {
82
- [Key in keyof T as `${Key & string}Mapper`]?: (ev: T[Key]) => ReduxAction | null;
82
+ export type EventMapper<T, C = PiDefCtxtProps> = {
83
+ [Key in keyof T as `${Key & string}Mapper`]?: (ev: T[Key], ctxt: C) => ReduxAction | null;
83
84
  };
84
85
  export type GenericCardParameterT = unknown | StateMapper<unknown, ReduxState, unknown>;
85
86
  export type PiCardDef = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export const DEF_REDUCER_PRIORITY = 0;
2
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pihanga2/core",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -71,4 +71,4 @@
71
71
  "vite-plugin-progress": "^0.0.7",
72
72
  "vitest": "^0.34.6"
73
73
  }
74
- }
74
+ }
package/src/card.tsx CHANGED
@@ -1,8 +1,8 @@
1
- import React, { useEffect, useId } from "react";
2
- import { useDispatch, useSelector, useStore } from "react-redux";
1
+ import React, {useEffect, useId} from "react";
2
+ import {useDispatch, useSelector, useStore} from "react-redux";
3
3
  import equal from "deep-equal";
4
4
 
5
- import { getLogger } from "./logger";
5
+ import {getLogger} from "./logger";
6
6
  import {
7
7
  CSSModuleClasses,
8
8
  CardProp,
@@ -16,7 +16,7 @@ import {
16
16
  StateMapper,
17
17
  StateMapperContext,
18
18
  } from "./types";
19
- import { Action, AnyAction, Dispatch } from "@reduxjs/toolkit";
19
+ import {Action, AnyAction, Dispatch} from "@reduxjs/toolkit";
20
20
  import {
21
21
  _createCardMapping,
22
22
  _updateCardMapping,
@@ -34,7 +34,7 @@ const logger = getLogger("card");
34
34
  // cardName: PiCardRef
35
35
  // } & { [k: string]: any }
36
36
 
37
- type CompProps = { [k: string]: any };
37
+ type CompProps = {[k: string]: any};
38
38
  type CardInfo = {
39
39
  mapping: Mapping;
40
40
  cardType: PiRegisterComponent;
@@ -71,13 +71,19 @@ export function Card(props: CardProp): JSX.Element {
71
71
 
72
72
  export function usePiReducer<S extends ReduxState, A extends ReduxAction>(
73
73
  eventType: string,
74
- mapper: ReduceF<S, A> // (state: S, action: A, dispatch: DispatchF) => S,
74
+ mapper: ReduceF<S, A>, // (state: S, action: A, dispatch: DispatchF) => S,
75
+ cardName: string
75
76
  ) {
76
77
  const store = useStore();
77
- const id = useId();
78
+ let key: string;
79
+ if (cardName !== "") {
80
+ key = `inside card '${cardName}'`;
81
+ } else {
82
+ key = useId();
83
+ }
78
84
  useEffect(() => {
79
85
  const r = (store as any).piReducer as PiReducer;
80
- return r.register(eventType, mapper, 0, id);
86
+ return r.register(eventType, mapper, 0, key);
81
87
  });
82
88
  }
83
89
 
@@ -133,7 +139,13 @@ function GenericCard(
133
139
  );
134
140
  const dispatch = useDispatch();
135
141
 
136
- const extCardProps = appendEventHandlers(info, cardProps, cardName, dispatch);
142
+ const extCardProps = appendEventHandlers(
143
+ info,
144
+ cardProps,
145
+ cardName,
146
+ props,
147
+ dispatch
148
+ );
137
149
  extCardProps._cls = cls_f(cardName, info.mapping.cardType);
138
150
  return React.createElement(
139
151
  info.cardType.component,
@@ -168,7 +180,7 @@ function getCardInfo(cardName: string): [CardInfo?, JSX.Element?] {
168
180
  return [undefined, renderUnknownCardType(mapping.cardType)];
169
181
  }
170
182
  }
171
- const info = { mapping, cardType };
183
+ const info = {mapping, cardType};
172
184
  return [info, undefined];
173
185
  }
174
186
 
@@ -205,7 +217,7 @@ function getCardProps(
205
217
  return cprops;
206
218
  }
207
219
 
208
- function cls_f(
220
+ export function cls_f(
209
221
  cardName: string,
210
222
  cardComp: string,
211
223
  prefix: string = "pi"
@@ -247,6 +259,7 @@ function appendEventHandlers(
247
259
  info: CardInfo,
248
260
  cardProps: CompProps,
249
261
  cardName: string,
262
+ ctxtProps: CardProp,
250
263
  dispatch: Dispatch<Action>
251
264
  ): CompProps {
252
265
  RegisterCardState.props(cardName, cardProps, dispatch);
@@ -266,7 +279,7 @@ function appendEventHandlers(
266
279
  logger.debug("setup mapper", cardName);
267
280
  cp[name] = (a: AnyAction) => {
268
281
  a.cardID = cardName;
269
- const a2 = m(a);
282
+ const a2 = m(a, ctxtProps);
270
283
  if (a2) dispatch(a2);
271
284
  };
272
285
  } else {
@@ -299,7 +312,7 @@ type CardState = {
299
312
  dispatch: Dispatch<Action>
300
313
  ) => void;
301
314
  changed: (cardName: string, isUnchanged: boolean, props: CompProps) => void;
302
- reducer: (state: ReduxState, action: Action) => ReduxState;
315
+ reducer: ReduceF<ReduxState, Action>;
303
316
  };
304
317
 
305
318
  export const RegisterCardState = createCardState();
@@ -310,7 +323,7 @@ function createCardState(): CardState {
310
323
  changedAt: number;
311
324
  reportedAt: number;
312
325
  };
313
- const s: { [name: string]: S } = {};
326
+ const s: {[name: string]: S} = {};
314
327
  let dispatch: Dispatch<Action>;
315
328
  let timer: number;
316
329
  let lastReport = 0;
@@ -342,7 +355,7 @@ function createCardState(): CardState {
342
355
  );
343
356
  if (changed.length > 0) {
344
357
  clearTimeout(timer); // just in case
345
- dispatch({ type: UPDATE_STATE_ACTION });
358
+ dispatch({type: UPDATE_STATE_ACTION});
346
359
  }
347
360
  }
348
361
  }, 1000);
@@ -369,7 +382,7 @@ function createCardState(): CardState {
369
382
  resetTimer();
370
383
  }
371
384
  };
372
- const reducer = (state: ReduxState): ReduxState => {
385
+ const reducer = (state: ReduxState) => {
373
386
  const pi = Object.values(s)
374
387
  .filter((s) => s.reportedAt > lastReport)
375
388
  .reduce((p, s) => {
@@ -384,12 +397,11 @@ function createCardState(): CardState {
384
397
  delete props._cls;
385
398
  p[name] = props;
386
399
  return p;
387
- }, {} as { [k: string]: any });
388
- state.pihanga = pi;
400
+ }, {} as {[k: string]: any});
401
+ (state.pihanga ??= {}).cards = pi;
389
402
  lastReport = Date.now();
390
- return state;
391
403
  };
392
- return { props, changed, reducer };
404
+ return {props, changed, reducer};
393
405
  }
394
406
 
395
407
  function copySafeProps(props: CompProps): CompProps {
@@ -421,7 +433,7 @@ function makeSafe(v: any): any {
421
433
  return Object.entries(v).reduce((p, [k, v]) => {
422
434
  p[k] = makeSafe(v);
423
435
  return p;
424
- }, {} as { [k: string]: any });
436
+ }, {} as {[k: string]: any});
425
437
  }
426
438
  logger.warn(">>> reject", v, typeof v);
427
439
  return "...";