@tietokilta/ilmomasiina-client 2.0.0-alpha44 → 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.
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`).
@@ -1 +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,SA0C9E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,qBAG3G"}
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"}
@@ -53,7 +53,7 @@ var actions_1 = require("./actions");
53
53
  Object.defineProperty(exports, "useDeleteSignup", { enumerable: true, get: function () { return actions_1.useDeleteSignup; } });
54
54
  Object.defineProperty(exports, "useUpdateSignup", { enumerable: true, get: function () { return actions_1.useUpdateSignup; } });
55
55
  function useEditSignupState({ id, editToken, language }) {
56
- const fetchSignup = (0, abortable_1.useAbortablePromise)(async (signal) => {
56
+ const { result, error, pending } = (0, abortable_1.useAbortablePromise)(async (signal) => {
57
57
  const response = await (0, api_1.apiFetch)(`signups/${id}`, {
58
58
  signal,
59
59
  headers: {
@@ -75,15 +75,16 @@ function useEditSignupState({ id, editToken, language }) {
75
75
  editableUntil: now + response.signup.editableForMillis,
76
76
  };
77
77
  }, [id, editToken]);
78
- const event = fetchSignup.result?.event;
79
- 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]);
80
80
  return (0, useShallowMemo_1.default)({
81
81
  editToken,
82
- pending: fetchSignup.pending,
83
- error: fetchSignup.error,
84
- ...fetchSignup.result,
82
+ pending,
83
+ error: error,
84
+ ...result,
85
85
  localizedEvent,
86
- isNew: fetchSignup.result && !fetchSignup.result.signup.confirmed,
86
+ localizedSignup,
87
+ isNew: result && !result.signup.confirmed,
87
88
  });
88
89
  }
89
90
  function EditSignupProvider({ id, editToken, language, children }) {
@@ -2,6 +2,7 @@ import type { SignupForEditResponse } from "@tietokilta/ilmomasiina-models";
2
2
  import { ApiError } from "../../api";
3
3
  export type State = Partial<SignupForEditResponse> & {
4
4
  localizedEvent?: SignupForEditResponse["event"];
5
+ localizedSignup?: SignupForEditResponse["signup"];
5
6
  isNew?: boolean;
6
7
  pending: boolean;
7
8
  error?: ApiError;
@@ -1 +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,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"}
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"}
@@ -1 +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,SAwB5E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,cAAc,CAAC,qBAGpG"}
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"}
@@ -48,19 +48,18 @@ const useShallowMemo_1 = __importDefault(require("../../utils/useShallowMemo"));
48
48
  const { Provider, useStateContext } = (0, stateContext_1.createStateContext)();
49
49
  exports.useEventListContext = useStateContext;
50
50
  function useEventListState({ category, language } = {}) {
51
- const fetchEvents = (0, abortable_1.useAbortablePromise)((signal) => {
51
+ const { result: events, error, pending, } = (0, abortable_1.useAbortablePromise)((signal) => {
52
52
  const query = category === undefined ? "" : `?${new URLSearchParams({ category })}`;
53
53
  return (0, api_1.apiFetch)(`events${query}`, {
54
54
  signal,
55
55
  });
56
56
  }, [category]);
57
- const events = fetchEvents.result;
58
57
  const localizedEvents = (0, react_1.useMemo)(() => (events && language ? events.map((event) => (0, localizedEvent_1.getLocalizedEventListItem)(event, language)) : events), [events, language]);
59
58
  return (0, useShallowMemo_1.default)({
60
- events: fetchEvents.result,
59
+ events,
61
60
  localizedEvents,
62
- pending: fetchEvents.pending,
63
- error: fetchEvents.error,
61
+ pending,
62
+ error: error,
64
63
  });
65
64
  }
66
65
  function EventListProvider({ category, language, children }) {
@@ -1 +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,SAmBvE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,qBAGpG"}
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"}
@@ -52,16 +52,15 @@ exports.useSingleEventContext = useStateContext;
52
52
  var actions_1 = require("./actions");
53
53
  Object.defineProperty(exports, "beginSignup", { enumerable: true, get: function () { return actions_1.beginSignup; } });
54
54
  function useSingleEventState({ slug, language }) {
55
- const fetchEvent = (0, abortable_1.useAbortablePromise)((signal) => (0, api_1.apiFetch)(`events/${slug}`, { signal }), [slug]);
56
- const event = fetchEvent.result;
55
+ const { result: event, error, pending, } = (0, abortable_1.useAbortablePromise)((signal) => (0, api_1.apiFetch)(`events/${slug}`, { signal }), [slug]);
57
56
  const localizedEvent = (0, react_1.useMemo)(() => (event && language ? (0, localizedEvent_1.getLocalizedEvent)(event, language) : event), [event, language]);
58
57
  const signupsByQuota = (0, react_1.useMemo)(() => localizedEvent && (0, signupUtils_1.getSignupsByQuota)(localizedEvent), [localizedEvent]);
59
58
  return (0, useShallowMemo_1.default)({
60
59
  event,
61
60
  localizedEvent,
62
61
  signupsByQuota,
63
- pending: fetchEvent.pending,
64
- error: fetchEvent.error,
62
+ pending,
63
+ error: error,
65
64
  });
66
65
  }
67
66
  function SingleEventProvider({ slug, language, children }) {
@@ -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
@@ -1 +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,8BAA8B,CAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,qBAAqB,EACnD,QAAQ,EAAE,MAAM,GACf,aAAa,CAAC,OAAO,CAAC,CAUxB"}
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"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLocalizedEventListItem = getLocalizedEventListItem;
4
4
  exports.getLocalizedEvent = getLocalizedEvent;
5
- exports.getLocalizedQuotaForEditSignup = getLocalizedQuotaForEditSignup;
5
+ exports.getLocalizedSignup = getLocalizedSignup;
6
6
  /** Overrides localized properties in the event and quotas with localized versions. */
7
7
  function getLocalizedEventListItem(event, language) {
8
- const locale = event.languages[language] ?? event;
8
+ const locale = event.languages?.[language] ?? event;
9
9
  return {
10
10
  ...event,
11
11
  title: locale.title || event.title,
@@ -22,7 +22,7 @@ function getLocalizedEventListItem(event, language) {
22
22
  }
23
23
  /** Overrides localized properties in the event, quotas and questions with localized versions. */
24
24
  function getLocalizedEvent(event, language) {
25
- const locale = event.languages[language] ?? event;
25
+ const locale = event.languages?.[language] ?? event;
26
26
  return {
27
27
  ...event,
28
28
  title: locale.title || event.title,
@@ -43,15 +43,18 @@ function getLocalizedEvent(event, language) {
43
43
  };
44
44
  }
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
  }
@@ -1 +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,SA0C9E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,qBAG3G"}
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"}
@@ -2,13 +2,13 @@ import React, { useMemo } from "react";
2
2
  import { EDIT_TOKEN_HEADER } from "@tietokilta/ilmomasiina-models";
3
3
  import { apiFetch } from "../../api";
4
4
  import { useAbortablePromise } from "../../utils/abortable";
5
- import { getLocalizedEvent } from "../../utils/localizedEvent";
5
+ import { getLocalizedEvent, getLocalizedSignup } from "../../utils/localizedEvent";
6
6
  import useShallowMemo from "../../utils/useShallowMemo";
7
7
  import { Provider } from "./state";
8
8
  export { useStateContext as useEditSignupContext, Provider as EditSignupContextProvider } from "./state";
9
9
  export { useDeleteSignup, useUpdateSignup } from "./actions";
10
10
  export function useEditSignupState({ id, editToken, language }) {
11
- const fetchSignup = useAbortablePromise(async (signal) => {
11
+ const { result, error, pending } = useAbortablePromise(async (signal) => {
12
12
  const response = await apiFetch(`signups/${id}`, {
13
13
  signal,
14
14
  headers: {
@@ -30,15 +30,16 @@ export function useEditSignupState({ id, editToken, language }) {
30
30
  editableUntil: now + response.signup.editableForMillis,
31
31
  };
32
32
  }, [id, editToken]);
33
- const event = fetchSignup.result?.event;
34
- const localizedEvent = useMemo(() => (event && language ? getLocalizedEvent(event, language) : event), [event, language]);
33
+ const localizedEvent = useMemo(() => (result && language ? getLocalizedEvent(result.event, language) : result?.event), [result, language]);
34
+ const localizedSignup = useMemo(() => (result && language ? getLocalizedSignup(result, language) : result?.signup), [result, language]);
35
35
  return useShallowMemo({
36
36
  editToken,
37
- pending: fetchSignup.pending,
38
- error: fetchSignup.error,
39
- ...fetchSignup.result,
37
+ pending,
38
+ error: error,
39
+ ...result,
40
40
  localizedEvent,
41
- isNew: fetchSignup.result && !fetchSignup.result.signup.confirmed,
41
+ localizedSignup,
42
+ isNew: result && !result.signup.confirmed,
42
43
  });
43
44
  }
44
45
  export function EditSignupProvider({ id, editToken, language, children }) {
@@ -2,6 +2,7 @@ import type { SignupForEditResponse } from "@tietokilta/ilmomasiina-models";
2
2
  import { ApiError } from "../../api";
3
3
  export type State = Partial<SignupForEditResponse> & {
4
4
  localizedEvent?: SignupForEditResponse["event"];
5
+ localizedSignup?: SignupForEditResponse["signup"];
5
6
  isNew?: boolean;
6
7
  pending: boolean;
7
8
  error?: ApiError;
@@ -1 +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,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"}
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"}
@@ -1 +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,SAwB5E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,cAAc,CAAC,qBAGpG"}
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"}
@@ -7,19 +7,18 @@ import useShallowMemo from "../../utils/useShallowMemo";
7
7
  const { Provider, useStateContext } = createStateContext();
8
8
  export { useStateContext as useEventListContext };
9
9
  export function useEventListState({ category, language } = {}) {
10
- const fetchEvents = useAbortablePromise((signal) => {
10
+ const { result: events, error, pending, } = useAbortablePromise((signal) => {
11
11
  const query = category === undefined ? "" : `?${new URLSearchParams({ category })}`;
12
12
  return apiFetch(`events${query}`, {
13
13
  signal,
14
14
  });
15
15
  }, [category]);
16
- const events = fetchEvents.result;
17
16
  const localizedEvents = useMemo(() => (events && language ? events.map((event) => getLocalizedEventListItem(event, language)) : events), [events, language]);
18
17
  return useShallowMemo({
19
- events: fetchEvents.result,
18
+ events,
20
19
  localizedEvents,
21
- pending: fetchEvents.pending,
22
- error: fetchEvents.error,
20
+ pending,
21
+ error: error,
23
22
  });
24
23
  }
25
24
  export function EventListProvider({ category, language, children }) {
@@ -1 +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,SAmBvE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,qBAGpG"}
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"}
@@ -10,16 +10,15 @@ export { useStateContext as useSingleEventContext };
10
10
  export { beginSignup } from "./actions";
11
11
  export { Provider as SingleEventContextProvider };
12
12
  export function useSingleEventState({ slug, language }) {
13
- const fetchEvent = useAbortablePromise((signal) => apiFetch(`events/${slug}`, { signal }), [slug]);
14
- const event = fetchEvent.result;
13
+ const { result: event, error, pending, } = useAbortablePromise((signal) => apiFetch(`events/${slug}`, { signal }), [slug]);
15
14
  const localizedEvent = useMemo(() => (event && language ? getLocalizedEvent(event, language) : event), [event, language]);
16
15
  const signupsByQuota = useMemo(() => localizedEvent && getSignupsByQuota(localizedEvent), [localizedEvent]);
17
16
  return useShallowMemo({
18
17
  event,
19
18
  localizedEvent,
20
19
  signupsByQuota,
21
- pending: fetchEvent.pending,
22
- error: fetchEvent.error,
20
+ pending,
21
+ error: error,
23
22
  });
24
23
  }
25
24
  export function SingleEventProvider({ slug, language, children }) {
@@ -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
@@ -1 +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,8BAA8B,CAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,qBAAqB,EACnD,QAAQ,EAAE,MAAM,GACf,aAAa,CAAC,OAAO,CAAC,CAUxB"}
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,6 +1,6 @@
1
1
  /** Overrides localized properties in the event and quotas with localized versions. */
2
2
  export function getLocalizedEventListItem(event, language) {
3
- const locale = event.languages[language] ?? event;
3
+ const locale = event.languages?.[language] ?? event;
4
4
  return {
5
5
  ...event,
6
6
  title: locale.title || event.title,
@@ -17,7 +17,7 @@ export function getLocalizedEventListItem(event, language) {
17
17
  }
18
18
  /** Overrides localized properties in the event, quotas and questions with localized versions. */
19
19
  export function getLocalizedEvent(event, language) {
20
- const locale = event.languages[language] ?? event;
20
+ const locale = event.languages?.[language] ?? event;
21
21
  return {
22
22
  ...event,
23
23
  title: locale.title || event.title,
@@ -38,15 +38,18 @@ export function getLocalizedEvent(event, language) {
38
38
  };
39
39
  }
40
40
  /** Overrides localized properties in the quota of the edited signup with localized versions. */
41
- export function getLocalizedQuotaForEditSignup({ event, signup: { quota } }, language) {
42
- const locale = event.languages[language];
41
+ export function getLocalizedSignup({ event, signup }, language) {
42
+ const locale = event.languages?.[language];
43
43
  // Short circuit: don't attempt anything if we don't have the locale.
44
44
  if (!locale)
45
- return quota;
45
+ return signup;
46
46
  // This is a bit unfortunate, but we have to find the quota manually.
47
- const quotaIndex = event.quotas.findIndex((q) => q.id === quota.id);
47
+ const quotaIndex = event.quotas.findIndex((q) => q.id === signup.quota.id);
48
48
  return {
49
- ...quota,
50
- title: locale.quotas[quotaIndex]?.title ?? quota.title,
49
+ ...signup,
50
+ quota: {
51
+ ...signup.quota,
52
+ title: locale.quotas[quotaIndex]?.title ?? signup.quota.title,
53
+ },
51
54
  };
52
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tietokilta/ilmomasiina-client",
3
- "version": "2.0.0-alpha44",
3
+ "version": "2.0.0-alpha45",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Tietokilta/ilmomasiina.git"
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "lodash-es": "^4.17.21",
26
- "@tietokilta/ilmomasiina-models": "2.0.0-alpha44"
26
+ "@tietokilta/ilmomasiina-models": "2.0.0-alpha45"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "react": "^17 || ^18"