@tietokilta/ilmomasiina-client 2.0.0-alpha43 → 2.0.0-alpha45

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.
Files changed (124) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/api.d.ts.map +1 -0
  3. package/dist/{api.js → cjs/api.js} +3 -3
  4. package/dist/cjs/index.d.ts.map +1 -0
  5. package/dist/{locales → cjs/locales}/index.d.ts.map +1 -1
  6. package/dist/{modules → cjs/modules}/editSignup/actions.d.ts +1 -1
  7. package/dist/cjs/modules/editSignup/actions.d.ts.map +1 -0
  8. package/dist/cjs/modules/editSignup/index.d.ts.map +1 -0
  9. package/dist/{modules → cjs/modules}/editSignup/index.js +28 -17
  10. package/dist/{modules → cjs/modules}/editSignup/state.d.ts +1 -1
  11. package/dist/cjs/modules/editSignup/state.d.ts.map +1 -0
  12. package/dist/cjs/modules/eventList/index.d.ts.map +1 -0
  13. package/dist/{modules → cjs/modules}/eventList/index.js +24 -15
  14. package/dist/cjs/modules/singleEvent/actions.d.ts.map +1 -0
  15. package/dist/{modules → cjs/modules}/singleEvent/actions.js +1 -2
  16. package/dist/cjs/modules/singleEvent/index.d.ts.map +1 -0
  17. package/dist/{modules → cjs/modules}/singleEvent/index.js +23 -14
  18. package/dist/cjs/utils/abortable.d.ts.map +1 -0
  19. package/dist/{utils → cjs/utils}/abortable.js +4 -5
  20. package/dist/cjs/utils/errorMessage.d.ts.map +1 -0
  21. package/dist/{utils → cjs/utils}/errorMessage.js +2 -3
  22. package/dist/cjs/utils/eventListUtils.d.ts.map +1 -0
  23. package/dist/{utils → cjs/utils}/eventListUtils.js +2 -3
  24. package/dist/{utils → cjs/utils}/localizedEvent.d.ts +1 -1
  25. package/dist/cjs/utils/localizedEvent.d.ts.map +1 -0
  26. package/dist/{utils → cjs/utils}/localizedEvent.js +14 -12
  27. package/dist/cjs/utils/signupState.d.ts.map +1 -0
  28. package/dist/{utils → cjs/utils}/signupState.js +2 -2
  29. package/dist/cjs/utils/signupUtils.d.ts.map +1 -0
  30. package/dist/{utils → cjs/utils}/signupUtils.js +4 -5
  31. package/dist/{utils → cjs/utils}/stateContext.d.ts +0 -1
  32. package/dist/cjs/utils/stateContext.d.ts.map +1 -0
  33. package/dist/{utils → cjs/utils}/stateContext.js +2 -2
  34. package/dist/cjs/utils/useShallowMemo.d.ts.map +1 -0
  35. package/dist/esm/api.d.ts +17 -0
  36. package/dist/esm/api.d.ts.map +1 -0
  37. package/dist/esm/api.js +57 -0
  38. package/dist/esm/index.d.ts +8 -0
  39. package/dist/esm/index.d.ts.map +1 -0
  40. package/dist/esm/index.js +7 -0
  41. package/dist/esm/locales/en.json +132 -0
  42. package/dist/esm/locales/fi.json +132 -0
  43. package/dist/esm/locales/index.d.ts +267 -0
  44. package/dist/esm/locales/index.d.ts.map +1 -0
  45. package/dist/esm/locales/index.js +8 -0
  46. package/dist/esm/modules/editSignup/actions.d.ts +13 -0
  47. package/dist/esm/modules/editSignup/actions.d.ts.map +1 -0
  48. package/dist/esm/modules/editSignup/actions.js +20 -0
  49. package/dist/esm/modules/editSignup/index.d.ts +13 -0
  50. package/dist/esm/modules/editSignup/index.d.ts.map +1 -0
  51. package/dist/esm/modules/editSignup/index.js +48 -0
  52. package/dist/esm/modules/editSignup/state.d.ts +19 -0
  53. package/dist/esm/modules/editSignup/state.d.ts.map +1 -0
  54. package/dist/esm/modules/editSignup/state.js +2 -0
  55. package/dist/esm/modules/eventList/index.d.ts +18 -0
  56. package/dist/esm/modules/eventList/index.d.ts.map +1 -0
  57. package/dist/esm/modules/eventList/index.js +27 -0
  58. package/dist/esm/modules/singleEvent/actions.d.ts +6 -0
  59. package/dist/esm/modules/singleEvent/actions.d.ts.map +1 -0
  60. package/dist/esm/modules/singleEvent/actions.js +7 -0
  61. package/dist/esm/modules/singleEvent/index.d.ts +26 -0
  62. package/dist/esm/modules/singleEvent/index.d.ts.map +1 -0
  63. package/dist/esm/modules/singleEvent/index.js +27 -0
  64. package/dist/esm/utils/abortable.d.ts +29 -0
  65. package/dist/esm/utils/abortable.d.ts.map +1 -0
  66. package/dist/esm/utils/abortable.js +78 -0
  67. package/dist/esm/utils/errorMessage.d.ts +16 -0
  68. package/dist/esm/utils/errorMessage.d.ts.map +1 -0
  69. package/dist/esm/utils/errorMessage.js +40 -0
  70. package/dist/esm/utils/eventListUtils.d.ts +31 -0
  71. package/dist/esm/utils/eventListUtils.d.ts.map +1 -0
  72. package/dist/esm/utils/eventListUtils.js +60 -0
  73. package/dist/esm/utils/localizedEvent.d.ts +10 -0
  74. package/dist/esm/utils/localizedEvent.d.ts.map +1 -0
  75. package/dist/esm/utils/localizedEvent.js +55 -0
  76. package/dist/esm/utils/signupState.d.ts +20 -0
  77. package/dist/esm/utils/signupState.d.ts.map +1 -0
  78. package/dist/esm/utils/signupState.js +22 -0
  79. package/dist/esm/utils/signupUtils.d.ts +26 -0
  80. package/dist/esm/utils/signupUtils.d.ts.map +1 -0
  81. package/dist/esm/utils/signupUtils.js +71 -0
  82. package/dist/esm/utils/stateContext.d.ts +9 -0
  83. package/dist/esm/utils/stateContext.d.ts.map +1 -0
  84. package/dist/esm/utils/stateContext.js +26 -0
  85. package/dist/esm/utils/useShallowMemo.d.ts +3 -0
  86. package/dist/esm/utils/useShallowMemo.d.ts.map +1 -0
  87. package/dist/esm/utils/useShallowMemo.js +29 -0
  88. package/package.json +12 -10
  89. package/dist/api.d.ts.map +0 -1
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/modules/editSignup/actions.d.ts.map +0 -1
  92. package/dist/modules/editSignup/index.d.ts.map +0 -1
  93. package/dist/modules/editSignup/state.d.ts.map +0 -1
  94. package/dist/modules/eventList/index.d.ts.map +0 -1
  95. package/dist/modules/singleEvent/actions.d.ts.map +0 -1
  96. package/dist/modules/singleEvent/index.d.ts.map +0 -1
  97. package/dist/utils/abortable.d.ts.map +0 -1
  98. package/dist/utils/errorMessage.d.ts.map +0 -1
  99. package/dist/utils/eventListUtils.d.ts.map +0 -1
  100. package/dist/utils/localizedEvent.d.ts.map +0 -1
  101. package/dist/utils/signupState.d.ts.map +0 -1
  102. package/dist/utils/signupUtils.d.ts.map +0 -1
  103. package/dist/utils/stateContext.d.ts.map +0 -1
  104. package/dist/utils/useShallowMemo.d.ts.map +0 -1
  105. package/dist/{api.d.ts → cjs/api.d.ts} +0 -0
  106. package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  107. package/dist/{index.js → cjs/index.js} +0 -0
  108. package/dist/{locales → cjs/locales}/en.json +0 -0
  109. package/dist/{locales → cjs/locales}/fi.json +0 -0
  110. package/dist/{locales → cjs/locales}/index.d.ts +0 -0
  111. package/dist/{locales → cjs/locales}/index.js +0 -0
  112. package/dist/{modules → cjs/modules}/editSignup/actions.js +0 -0
  113. package/dist/{modules → cjs/modules}/editSignup/index.d.ts +0 -0
  114. package/dist/{modules → cjs/modules}/editSignup/state.js +0 -0
  115. package/dist/{modules → cjs/modules}/eventList/index.d.ts +0 -0
  116. package/dist/{modules → cjs/modules}/singleEvent/actions.d.ts +0 -0
  117. package/dist/{modules → cjs/modules}/singleEvent/index.d.ts +0 -0
  118. package/dist/{utils → cjs/utils}/abortable.d.ts +0 -0
  119. package/dist/{utils → cjs/utils}/errorMessage.d.ts +0 -0
  120. package/dist/{utils → cjs/utils}/eventListUtils.d.ts +0 -0
  121. package/dist/{utils → cjs/utils}/signupState.d.ts +0 -0
  122. package/dist/{utils → cjs/utils}/signupUtils.d.ts +0 -0
  123. package/dist/{utils → cjs/utils}/useShallowMemo.d.ts +0 -0
  124. package/dist/{utils → cjs/utils}/useShallowMemo.js +1 -1
package/README.md CHANGED
@@ -6,6 +6,9 @@ frontends.
6
6
  Frontend developers should import the supported items directly from `@tietokilta/ilmomasiina-client`. Most files
7
7
  in `dist` are not part of the public interface. (The files in `dist/utils` are also public, but likely less stable.)
8
8
 
9
+ **Note:** Currently, importing the main entry point requires client-side React. You may want to import files from `dist`
10
+ directly if working with SSR.
11
+
9
12
  **Note:** This package follows the versioning of Ilmomasiina. We will avoid breaking changes in the API, but minor
10
13
  versions may occasionally be incompatible with each other. If writing custom frontends, we recommend fixing the
11
14
  minor version (`"@tietokilta/ilmomasiina-client": "~2.x.x"` in `package.json`).
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;gBAEH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;WAQ5B,YAAY,CAAC,QAAQ,EAAE,QAAQ;CAW7C;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,QAEvC;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,MAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAE,YAAiB,cA6BpH"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.apiFetch = exports.configureApi = exports.ApiError = void 0;
3
+ exports.ApiError = void 0;
4
+ exports.configureApi = configureApi;
5
+ exports.apiFetch = apiFetch;
4
6
  class ApiError extends Error {
5
7
  status;
6
8
  code;
@@ -30,7 +32,6 @@ let apiUrl = "/api";
30
32
  function configureApi(url) {
31
33
  apiUrl = url;
32
34
  }
33
- exports.configureApi = configureApi;
34
35
  async function apiFetch(uri, { method = "GET", body, headers, signal } = {}) {
35
36
  const allHeaders = {
36
37
  ...(headers || {}),
@@ -60,4 +61,3 @@ async function apiFetch(uri, { method = "GET", body, headers, signal } = {}) {
60
61
  throw new ApiError(0, err);
61
62
  });
62
63
  }
63
- exports.apiFetch = apiFetch;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,WAAW,CAAC;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locales/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/locales/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export declare const useUpdateSignup: () => (answers: {
2
- email?: string | null | undefined;
3
2
  firstName?: string | null | undefined;
4
3
  lastName?: string | null | undefined;
5
4
  answers?: {
@@ -7,6 +6,7 @@ export declare const useUpdateSignup: () => (answers: {
7
6
  answer: string | string[];
8
7
  }[] | undefined;
9
8
  namePublic?: boolean | undefined;
9
+ email?: string | null | undefined;
10
10
  language?: string | null | undefined;
11
11
  }) => Promise<void>;
12
12
  export declare const useDeleteSignup: () => () => Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/modules/editSignup/actions.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;mBAQ1B,CAAC;AAEH,eAAO,MAAM,eAAe,2BAO1B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/editSignup/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAQ1D,OAAO,EAAY,KAAK,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,OAAO,EAAE,eAAe,IAAI,oBAAoB,EAAE,QAAQ,IAAI,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACzG,YAAY,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE7D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,SA6C9E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,qBAG3G"}
@@ -15,18 +15,30 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.EditSignupProvider = exports.useEditSignupState = exports.useUpdateSignup = exports.useDeleteSignup = exports.EditSignupContextProvider = exports.useEditSignupContext = void 0;
39
+ exports.useUpdateSignup = exports.useDeleteSignup = exports.EditSignupContextProvider = exports.useEditSignupContext = void 0;
40
+ exports.useEditSignupState = useEditSignupState;
41
+ exports.EditSignupProvider = EditSignupProvider;
30
42
  const react_1 = __importStar(require("react"));
31
43
  const ilmomasiina_models_1 = require("@tietokilta/ilmomasiina-models");
32
44
  const api_1 = require("../../api");
@@ -41,7 +53,7 @@ var actions_1 = require("./actions");
41
53
  Object.defineProperty(exports, "useDeleteSignup", { enumerable: true, get: function () { return actions_1.useDeleteSignup; } });
42
54
  Object.defineProperty(exports, "useUpdateSignup", { enumerable: true, get: function () { return actions_1.useUpdateSignup; } });
43
55
  function useEditSignupState({ id, editToken, language }) {
44
- const fetchSignup = (0, abortable_1.useAbortablePromise)(async (signal) => {
56
+ const { result, error, pending } = (0, abortable_1.useAbortablePromise)(async (signal) => {
45
57
  const response = await (0, api_1.apiFetch)(`signups/${id}`, {
46
58
  signal,
47
59
  headers: {
@@ -63,20 +75,19 @@ function useEditSignupState({ id, editToken, language }) {
63
75
  editableUntil: now + response.signup.editableForMillis,
64
76
  };
65
77
  }, [id, editToken]);
66
- const event = fetchSignup.result?.event;
67
- const localizedEvent = (0, react_1.useMemo)(() => (event && language ? (0, localizedEvent_1.getLocalizedEvent)(event, language) : event), [event, language]);
78
+ const localizedEvent = (0, react_1.useMemo)(() => (result && language ? (0, localizedEvent_1.getLocalizedEvent)(result.event, language) : result?.event), [result, language]);
79
+ const localizedSignup = (0, react_1.useMemo)(() => (result && language ? (0, localizedEvent_1.getLocalizedSignup)(result, language) : result?.signup), [result, language]);
68
80
  return (0, useShallowMemo_1.default)({
69
81
  editToken,
70
- pending: fetchSignup.pending,
71
- error: fetchSignup.error,
72
- ...fetchSignup.result,
82
+ pending,
83
+ error: error,
84
+ ...result,
73
85
  localizedEvent,
74
- isNew: fetchSignup.result && !fetchSignup.result.signup.confirmed,
86
+ localizedSignup,
87
+ isNew: result && !result.signup.confirmed,
75
88
  });
76
89
  }
77
- exports.useEditSignupState = useEditSignupState;
78
90
  function EditSignupProvider({ id, editToken, language, children }) {
79
91
  const state = useEditSignupState({ id, editToken, language });
80
92
  return react_1.default.createElement(state_1.Provider, { value: state }, children);
81
93
  }
82
- exports.EditSignupProvider = EditSignupProvider;
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
2
1
  import type { SignupForEditResponse } from "@tietokilta/ilmomasiina-models";
3
2
  import { ApiError } from "../../api";
4
3
  export type State = Partial<SignupForEditResponse> & {
5
4
  localizedEvent?: SignupForEditResponse["event"];
5
+ localizedSignup?: SignupForEditResponse["signup"];
6
6
  isNew?: boolean;
7
7
  pending: boolean;
8
8
  error?: ApiError;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/modules/editSignup/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG;IACnD,cAAc,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE;QAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAQ,QAAQ,uFAAE,eAAe,eAAE,WAAW,8FAAgC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/eventList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAY,MAAM,WAAW,CAAC;AAM/C,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,QAAA,MAAkB,eAAe,aAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAE,cAAmB,SA0B5E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,cAAc,CAAC,qBAGpG"}
@@ -15,18 +15,30 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.EventListProvider = exports.useEventListState = exports.useEventListContext = void 0;
39
+ exports.useEventListContext = void 0;
40
+ exports.useEventListState = useEventListState;
41
+ exports.EventListProvider = EventListProvider;
30
42
  const react_1 = __importStar(require("react"));
31
43
  const api_1 = require("../../api");
32
44
  const abortable_1 = require("../../utils/abortable");
@@ -36,24 +48,21 @@ const useShallowMemo_1 = __importDefault(require("../../utils/useShallowMemo"));
36
48
  const { Provider, useStateContext } = (0, stateContext_1.createStateContext)();
37
49
  exports.useEventListContext = useStateContext;
38
50
  function useEventListState({ category, language } = {}) {
39
- const fetchEvents = (0, abortable_1.useAbortablePromise)((signal) => {
51
+ const { result: events, error, pending, } = (0, abortable_1.useAbortablePromise)((signal) => {
40
52
  const query = category === undefined ? "" : `?${new URLSearchParams({ category })}`;
41
53
  return (0, api_1.apiFetch)(`events${query}`, {
42
54
  signal,
43
55
  });
44
56
  }, [category]);
45
- const events = fetchEvents.result;
46
57
  const localizedEvents = (0, react_1.useMemo)(() => (events && language ? events.map((event) => (0, localizedEvent_1.getLocalizedEventListItem)(event, language)) : events), [events, language]);
47
58
  return (0, useShallowMemo_1.default)({
48
- events: fetchEvents.result,
59
+ events,
49
60
  localizedEvents,
50
- pending: fetchEvents.pending,
51
- error: fetchEvents.error,
61
+ pending,
62
+ error: error,
52
63
  });
53
64
  }
54
- exports.useEventListState = useEventListState;
55
65
  function EventListProvider({ category, language, children }) {
56
66
  const state = useEventListState({ category, language });
57
67
  return react_1.default.createElement(Provider, { value: state }, children);
58
68
  }
59
- exports.EventListProvider = EventListProvider;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/modules/singleEvent/actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,gCAAgC,CAAC;AAGpF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO;;;GAK3C"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.beginSignup = void 0;
3
+ exports.beginSignup = beginSignup;
4
4
  const api_1 = require("../../api");
5
5
  function beginSignup(quotaId) {
6
6
  return (0, api_1.apiFetch)("signups", {
@@ -8,4 +8,3 @@ function beginSignup(quotaId) {
8
8
  body: { quotaId },
9
9
  });
10
10
  }
11
- exports.beginSignup = beginSignup;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/singleEvent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAY,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAqB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI1E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAQ,QAAQ,6EAAE,eAAe,aAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,KAAK,IAAI,gBAAgB,EAAE,CAAC;AAC1C,OAAO,EAAE,QAAQ,IAAI,0BAA0B,EAAE,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,gBAAgB,SAqBvE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,qBAGpG"}
@@ -15,18 +15,30 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.SingleEventProvider = exports.useSingleEventState = exports.SingleEventContextProvider = exports.beginSignup = exports.useSingleEventContext = void 0;
39
+ exports.SingleEventContextProvider = exports.beginSignup = exports.useSingleEventContext = void 0;
40
+ exports.useSingleEventState = useSingleEventState;
41
+ exports.SingleEventProvider = SingleEventProvider;
30
42
  const react_1 = __importStar(require("react"));
31
43
  const api_1 = require("../../api");
32
44
  const abortable_1 = require("../../utils/abortable");
@@ -40,21 +52,18 @@ exports.useSingleEventContext = useStateContext;
40
52
  var actions_1 = require("./actions");
41
53
  Object.defineProperty(exports, "beginSignup", { enumerable: true, get: function () { return actions_1.beginSignup; } });
42
54
  function useSingleEventState({ slug, language }) {
43
- const fetchEvent = (0, abortable_1.useAbortablePromise)((signal) => (0, api_1.apiFetch)(`events/${slug}`, { signal }), [slug]);
44
- const event = fetchEvent.result;
55
+ const { result: event, error, pending, } = (0, abortable_1.useAbortablePromise)((signal) => (0, api_1.apiFetch)(`events/${slug}`, { signal }), [slug]);
45
56
  const localizedEvent = (0, react_1.useMemo)(() => (event && language ? (0, localizedEvent_1.getLocalizedEvent)(event, language) : event), [event, language]);
46
57
  const signupsByQuota = (0, react_1.useMemo)(() => localizedEvent && (0, signupUtils_1.getSignupsByQuota)(localizedEvent), [localizedEvent]);
47
58
  return (0, useShallowMemo_1.default)({
48
59
  event,
49
60
  localizedEvent,
50
61
  signupsByQuota,
51
- pending: fetchEvent.pending,
52
- error: fetchEvent.error,
62
+ pending,
63
+ error: error,
53
64
  });
54
65
  }
55
- exports.useSingleEventState = useSingleEventState;
56
66
  function SingleEventProvider({ slug, language, children }) {
57
67
  const state = useSingleEventState({ slug, language });
58
68
  return react_1.default.createElement(Provider, { value: state }, children);
59
69
  }
60
- exports.SingleEventProvider = SingleEventProvider;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortable.d.ts","sourceRoot":"","sources":["../../../src/utils/abortable.ts"],"names":[],"mappings":"AAEA,oEAAoE;AACpE,wBAAgB,SAAS,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAIrD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,QAOrF;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,IAAI,CAAC;CACf,GACD;IACE,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;CAChB,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;CAChB,CAAC;AAEN,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,mBA2C/F"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAbortablePromise = exports.ignoreAbort = exports.useAbortableEffect = exports.abortable = void 0;
3
+ exports.abortable = abortable;
4
+ exports.useAbortableEffect = useAbortableEffect;
5
+ exports.ignoreAbort = ignoreAbort;
6
+ exports.useAbortablePromise = useAbortablePromise;
4
7
  const react_1 = require("react");
5
8
  /** Returns an AbortSignal and a function that aborts the signal. */
6
9
  function abortable() {
@@ -8,7 +11,6 @@ function abortable() {
8
11
  const abort = () => controller.abort();
9
12
  return [controller.signal, abort];
10
13
  }
11
- exports.abortable = abortable;
12
14
  /** Like useEffect, but instead of accepting a cleanup function, provides an AbortSignal that is aborted
13
15
  * upon unmount or deps change.
14
16
  */
@@ -20,7 +22,6 @@ function useAbortableEffect(effect, deps) {
20
22
  // eslint-disable-next-line react-hooks/exhaustive-deps
21
23
  }, deps);
22
24
  }
23
- exports.useAbortableEffect = useAbortableEffect;
24
25
  /** Wraps a Promise, ignoring DOMExceptions with name='AbortError' as if the promise was left pending. */
25
26
  function ignoreAbort(promise) {
26
27
  return new Promise((resolve, reject) => {
@@ -31,7 +32,6 @@ function ignoreAbort(promise) {
31
32
  });
32
33
  });
33
34
  }
34
- exports.ignoreAbort = ignoreAbort;
35
35
  /** Returns the state of an async effect, and provides to it an AbortSignal that is aborted
36
36
  * upon unmount or deps change.
37
37
  *
@@ -82,4 +82,3 @@ function useAbortablePromise(effect, deps) {
82
82
  }, deps);
83
83
  return state;
84
84
  }
85
- exports.useAbortablePromise = useAbortablePromise;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorMessage.d.ts","sourceRoot":"","sources":["../../../src/utils/errorMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AA4BlC;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAEjF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errorDesc = exports.errorTitle = void 0;
3
+ exports.errorTitle = errorTitle;
4
+ exports.errorDesc = errorDesc;
4
5
  function errorString(part, error, prefix) {
5
6
  // First try e.g. errors.SignupsClosed, then errors.403, then errors.default
6
7
  const types = [];
@@ -32,7 +33,6 @@ function errorString(part, error, prefix) {
32
33
  function errorTitle(error, prefix) {
33
34
  return errorString("title", error, prefix);
34
35
  }
35
- exports.errorTitle = errorTitle;
36
36
  /** Returns possible localization keys, in priority order, for an error description.
37
37
  *
38
38
  * @param error The API error object thrown.
@@ -42,4 +42,3 @@ exports.errorTitle = errorTitle;
42
42
  function errorDesc(error, prefix) {
43
43
  return errorString("description", error, prefix);
44
44
  }
45
- exports.errorDesc = errorDesc;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventListUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/eventListUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA4B,eAAe,EAAE,MAAM,eAAe,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,GAAE,iBAAsB,cA2DxF;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,iBAAiB,cAEtF"}
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.eventsToRows = exports.eventToRows = void 0;
6
+ exports.eventToRows = eventToRows;
7
+ exports.eventsToRows = eventsToRows;
7
8
  const every_1 = __importDefault(require("lodash-es/every"));
8
9
  const sumBy_1 = __importDefault(require("lodash-es/sumBy"));
9
10
  const signupState_1 = require("./signupState");
@@ -60,9 +61,7 @@ function eventToRows(event, { compact } = {}) {
60
61
  }
61
62
  return rows;
62
63
  }
63
- exports.eventToRows = eventToRows;
64
64
  /** Converts a list of events to a flat list of rows to be shown in the event list. */
65
65
  function eventsToRows(events, options) {
66
66
  return events.flatMap((event) => eventToRows(event, options));
67
67
  }
68
- exports.eventsToRows = eventsToRows;
@@ -5,6 +5,6 @@ export declare function getLocalizedEventListItem(event: UserEventListItem, lang
5
5
  /** Overrides localized properties in the event, quotas and questions with localized versions. */
6
6
  export declare function getLocalizedEvent<E extends UserEventResponse | EventForEditSignup>(event: E, language: string): E;
7
7
  /** Overrides localized properties in the quota of the edited signup with localized versions. */
8
- export declare function getLocalizedQuotaForEditSignup({ event, signup: { quota } }: SignupForEditResponse, language: string): SignupForEdit["quota"];
8
+ export declare function getLocalizedSignup({ event, signup }: SignupForEditResponse, language: string): SignupForEdit;
9
9
  export {};
10
10
  //# sourceMappingURL=localizedEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localizedEvent.d.ts","sourceRoot":"","sources":["../../../src/utils/localizedEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC,KAAK,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAEzD,sFAAsF;AACtF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAevG;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAG,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAoBjH;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAa5G"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLocalizedQuotaForEditSignup = exports.getLocalizedEvent = exports.getLocalizedEventListItem = void 0;
3
+ exports.getLocalizedEventListItem = getLocalizedEventListItem;
4
+ exports.getLocalizedEvent = getLocalizedEvent;
5
+ exports.getLocalizedSignup = getLocalizedSignup;
4
6
  /** Overrides localized properties in the event and quotas with localized versions. */
5
7
  function getLocalizedEventListItem(event, language) {
6
- const locale = event.languages[language] ?? event;
8
+ const locale = event.languages?.[language] ?? event;
7
9
  return {
8
10
  ...event,
9
11
  title: locale.title || event.title,
@@ -18,10 +20,9 @@ function getLocalizedEventListItem(event, language) {
18
20
  })),
19
21
  };
20
22
  }
21
- exports.getLocalizedEventListItem = getLocalizedEventListItem;
22
23
  /** Overrides localized properties in the event, quotas and questions with localized versions. */
23
24
  function getLocalizedEvent(event, language) {
24
- const locale = event.languages[language] ?? event;
25
+ const locale = event.languages?.[language] ?? event;
25
26
  return {
26
27
  ...event,
27
28
  title: locale.title || event.title,
@@ -41,18 +42,19 @@ function getLocalizedEvent(event, language) {
41
42
  })),
42
43
  };
43
44
  }
44
- exports.getLocalizedEvent = getLocalizedEvent;
45
45
  /** Overrides localized properties in the quota of the edited signup with localized versions. */
46
- function getLocalizedQuotaForEditSignup({ event, signup: { quota } }, language) {
47
- const locale = event.languages[language];
46
+ function getLocalizedSignup({ event, signup }, language) {
47
+ const locale = event.languages?.[language];
48
48
  // Short circuit: don't attempt anything if we don't have the locale.
49
49
  if (!locale)
50
- return quota;
50
+ return signup;
51
51
  // This is a bit unfortunate, but we have to find the quota manually.
52
- const quotaIndex = event.quotas.findIndex((q) => q.id === quota.id);
52
+ const quotaIndex = event.quotas.findIndex((q) => q.id === signup.quota.id);
53
53
  return {
54
- ...quota,
55
- title: locale.quotas[quotaIndex]?.title ?? quota.title,
54
+ ...signup,
55
+ quota: {
56
+ ...signup.quota,
57
+ title: locale.quotas[quotaIndex]?.title ?? signup.quota.title,
58
+ },
56
59
  };
57
60
  }
58
- exports.getLocalizedQuotaForEditSignup = getLocalizedQuotaForEditSignup;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signupState.d.ts","sourceRoot":"","sources":["../../../src/utils/signupState.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAA;CAAE,GAC/B;IAAE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAC9C;IAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GACzC;IAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAEhD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAkBzF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signupState = exports.SignupState = void 0;
3
+ exports.SignupState = void 0;
4
+ exports.signupState = signupState;
4
5
  var SignupState;
5
6
  (function (SignupState) {
6
7
  SignupState["disabled"] = "disabled";
@@ -23,4 +24,3 @@ function signupState(starts, closes) {
23
24
  }
24
25
  return { state: SignupState.closed, closed: signupCloses };
25
26
  }
26
- exports.signupState = signupState;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signupUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/signupUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAEpE,4FAA4F;AAC5F,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,cAAc,GAAG,cAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG;IAClH,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,cAAc,EAAE,KAAK,EAAE,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE,CAQ5F;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,aAAa,EAAE,MAAM;;;EAMzF;AAED,yHAAyH;AACzH,MAAM,MAAM,YAAY,CAAC,EAAE,SAAS,cAAc,GAAG,cAAc,IAAI,IAAI,CACzE,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EACpB,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CACpC,GAAG;IACF,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;CAChC,CAAC;AAEF,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,EAAE,CAyDvE;AAED,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,UAEpE"}
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.stringifyAnswer = exports.getSignupsByQuota = exports.countOverflowSignups = exports.getSignupsAsList = void 0;
6
+ exports.getSignupsAsList = getSignupsAsList;
7
+ exports.countOverflowSignups = countOverflowSignups;
8
+ exports.getSignupsByQuota = getSignupsByQuota;
9
+ exports.stringifyAnswer = stringifyAnswer;
7
10
  const sumBy_1 = __importDefault(require("lodash-es/sumBy"));
8
11
  const ilmomasiina_models_1 = require("@tietokilta/ilmomasiina-models");
9
12
  const signupState_1 = require("./signupState");
@@ -13,7 +16,6 @@ function getSignupsAsList(event) {
13
16
  quota,
14
17
  })) ?? []);
15
18
  }
16
- exports.getSignupsAsList = getSignupsAsList;
17
19
  /** Computes the number of signups in the open quota and queue. */
18
20
  function countOverflowSignups(quotas, openQuotaSize) {
19
21
  const overflow = (0, sumBy_1.default)(quotas, (quota) => Math.max(0, quota.signupCount - (quota.size ?? Infinity)));
@@ -22,7 +24,6 @@ function countOverflowSignups(quotas, openQuotaSize) {
22
24
  queueCount: Math.max(overflow - openQuotaSize, 0),
23
25
  };
24
26
  }
25
- exports.countOverflowSignups = countOverflowSignups;
26
27
  /** Gathers all signups of an event into their assigned quotas, the open quota, and the queue. */
27
28
  function getSignupsByQuota(event) {
28
29
  const signupsDisabled = (0, signupState_1.signupState)(event.registrationStartDate, event.registrationEndDate).state === signupState_1.SignupState.disabled;
@@ -73,9 +74,7 @@ function getSignupsByQuota(event) {
73
74
  : [];
74
75
  return [...quotas, ...openQuota, ...queue];
75
76
  }
76
- exports.getSignupsByQuota = getSignupsByQuota;
77
77
  /** Formats an answer for display. */
78
78
  function stringifyAnswer(answer) {
79
79
  return Array.isArray(answer) ? answer.join(", ") : (answer ?? "");
80
80
  }
81
- exports.stringifyAnswer = stringifyAnswer;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const MISSING: unique symbol;
3
2
  /** Creates a React context and an associated hook that only works inside the Provider. */
4
3
  export declare function createStateContext<State>(): {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateContext.d.ts","sourceRoot":"","sources":["../../../src/utils/stateContext.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,eAAoB,CAAC;AAEzC,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK;;;;kBAWjB,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,qBAAP,CAAC,KAAK,CAAC;EAarF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createStateContext = exports.MISSING = void 0;
3
+ exports.MISSING = void 0;
4
+ exports.createStateContext = createStateContext;
4
5
  const react_1 = require("react");
5
6
  exports.MISSING = Symbol("missing");
6
7
  /** Creates a React context and an associated hook that only works inside the Provider. */
@@ -27,4 +28,3 @@ function createStateContext() {
27
28
  createThunk,
28
29
  };
29
30
  }
30
- exports.createStateContext = createStateContext;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useShallowMemo.d.ts","sourceRoot":"","sources":["../../../src/utils/useShallowMemo.ts"],"names":[],"mappings":"AAwBA,uGAAuG;AACvG,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIrD"}
@@ -0,0 +1,17 @@
1
+ import { ErrorCode } from "@tietokilta/ilmomasiina-models";
2
+ export interface FetchOptions {
3
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
4
+ body?: any;
5
+ headers?: Record<string, string>;
6
+ signal?: AbortSignal;
7
+ }
8
+ export declare class ApiError extends Error {
9
+ status: number;
10
+ code?: ErrorCode;
11
+ response?: any;
12
+ constructor(status: number, response: any);
13
+ static fromResponse(response: Response): Promise<ApiError>;
14
+ }
15
+ export declare function configureApi(url: string): void;
16
+ export declare function apiFetch<T = unknown>(uri: string, { method, body, headers, signal }?: FetchOptions): Promise<T>;
17
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;gBAEH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;WAQ5B,YAAY,CAAC,QAAQ,EAAE,QAAQ;CAW7C;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,QAEvC;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,MAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAE,YAAiB,cA6BpH"}