@innspel/react-native 0.11.0 → 0.12.0

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
@@ -115,9 +115,9 @@ Innspels. Innsenderen skal se hvem som svarte.
115
115
  ## Når et innspill er sendt
116
116
 
117
117
  `onSubmitted` kalles etter en innsending — også når nettet var borte og innspillet
118
- ligger i køen, for innsenderen trykket Send. Du får `type`, `queued`, og `id` når
119
- saken finnes hos tjeneren. Ingen identitet: saksnummeret er sakens, og det
120
- innsenderen alt ser i kvitteringen. «Ja, jeg også» på en kjent feil gir ikke kallet.
118
+ ligger i køen, for innsenderen trykket Send. Du får `type`, `queued`, og `id` og
119
+ `number` når saken finnes hos tjeneren. `number` er saksnummeret innsenderen ser i
120
+ kvitteringen («Sak 10042»): sakens løpenummer hos deg, fra 10001. Ingen identitet. «Ja, jeg også» på en kjent feil gir ikke kallet.
121
121
 
122
122
  ```tsx
123
123
  <InnspelProvider
package/dist/index.cjs CHANGED
@@ -115,6 +115,7 @@ var t = {
115
115
  onActionPrimary: "#04252A",
116
116
  actionSecondaryBorder: "#7C8894",
117
117
  actionSecondaryText: "#F2F4F6",
118
+ actionText: "#5AD3E2",
118
119
  brand: "#5AD3E2",
119
120
  onBrand: "#04252A",
120
121
  brandFill: "#0E7C8C",
@@ -202,6 +203,7 @@ var light = {
202
203
  onActionPrimary: "#FFFFFF",
203
204
  actionSecondaryBorder: "#6F7883",
204
205
  actionSecondaryText: "#14181D",
206
+ actionText: "#0A6673",
205
207
  brand: "#0A6673",
206
208
  onBrand: "#FFFFFF",
207
209
  brandFill: "#0A6673",
@@ -682,24 +684,34 @@ function H({
682
684
  testID
683
685
  }) {
684
686
  const tema = useTema();
685
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_react_native2.View, { style: { gap: tema.space.xs }, children: [
686
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
687
- import_react_native2.Text,
688
- {
689
- testID,
690
- accessibilityRole: "header",
691
- style: {
692
- color: tema.color.textPrimary,
693
- fontSize: nivaa === 2 ? tema.font.h2 : tema.font.h3,
694
- lineHeight: nivaa === 2 ? tema.lineHeight.h2 : tema.lineHeight.h3,
695
- fontWeight: tema.weight.bold
696
- },
697
- children
698
- }
699
- ),
700
- sub ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Sek, { children: sub }) : null,
701
- meta ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Meta, { children: meta }) : null
702
- ] });
687
+ return (
688
+ /*
689
+ * `ark-tittel` er ETT fast punkt i arket, likt i hvert steg (#304): iOS-flytene lukker
690
+ * tastaturet med et trykk på tomt område fordi Maestros `hideKeyboard` ikke finnes der,
691
+ * og det var settets eneste koordinatavhengige linje. Bare skjermens EGEN overskrift
692
+ * (`nivaa` 2) får den — en overskrift inne i et kort eller en dialog er `nivaa` 3, og to
693
+ * like testID-er på skjermen gjør flyten tvetydig. Den valgfrie `testID` står fortsatt
694
+ * på teksten, så ingen eksisterende flyt eller test flytter seg.
695
+ */
696
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_react_native2.View, { testID: nivaa === 2 ? "ark-tittel" : void 0, style: { gap: tema.space.xs }, children: [
697
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
698
+ import_react_native2.Text,
699
+ {
700
+ testID,
701
+ accessibilityRole: "header",
702
+ style: {
703
+ color: tema.color.textPrimary,
704
+ fontSize: nivaa === 2 ? tema.font.h2 : tema.font.h3,
705
+ lineHeight: nivaa === 2 ? tema.lineHeight.h2 : tema.lineHeight.h3,
706
+ fontWeight: tema.weight.bold
707
+ },
708
+ children
709
+ }
710
+ ),
711
+ sub ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Sek, { children: sub }) : null,
712
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Meta, { children: meta }) : null
713
+ ] })
714
+ );
703
715
  }
704
716
  function Brodtekst({ children, testID }) {
705
717
  const tema = useTema();
@@ -766,7 +778,7 @@ function Tekstknapp({
766
778
  accessibilityLabel
767
779
  }) {
768
780
  const tema = useTema();
769
- const farge = disabled ? tema.color.textDisabled : noytral ? tema.color.textPrimary : tema.color.actionSecondaryText;
781
+ const farge = disabled ? tema.color.textDisabled : noytral ? tema.color.textPrimary : tema.color.actionText;
770
782
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
771
783
  import_react_native2.Pressable,
772
784
  {
@@ -924,11 +936,6 @@ function Banner({
924
936
  }
925
937
 
926
938
  // src/widget/tekster.ts
927
- function saksnr(id) {
928
- const i = id.indexOf("_");
929
- const rest = i >= 0 ? id.slice(i + 1) : id;
930
- return rest.length > 8 ? rest.slice(-4) : rest;
931
- }
932
939
  var stor = (s) => s ? s.charAt(0).toUpperCase() + s.slice(1) : s;
933
940
  var PLATTFORM_ORD = {
934
941
  android: "Android",
@@ -1087,13 +1094,13 @@ var tekst = {
1087
1094
  kvitteringFeil: "Du f\xE5r beskjed n\xE5r den er rettet, eller hvis vi trenger mer.",
1088
1095
  kvitteringJaOgsa: "Du f\xE5r beskjed n\xE5r den er rettet.",
1089
1096
  kvitteringUnder: "Ligger under \xABMine innspill\xBB og oppdaterer seg selv.",
1090
- saksnummer: (nr) => `Sak ${saksnr(nr)}`,
1097
+ saksnummer: (nr) => `Sak ${nr}`,
1091
1098
  tilbakeTilAppen: "Tilbake til appen",
1092
1099
  /** DD-42: saken er sendt, bildet kom ikke med — aldri en blokkert innsending. */
1093
1100
  kvitteringVedleggFeilet: "Sendt \u2014 skjermbildet kunne ikke legges ved",
1094
1101
  tekstenErLagret: "Teksten din er lagret.",
1095
1102
  vedleggFeiletBanner: "Bildet ble ikke lastet opp. Saken er sendt uten det \u2014 vil du, kan du sende et nytt innspill med bilde.",
1096
- saksnummerUtenVedlegg: (nr) => `Sak ${saksnr(nr)} \xB7 uten vedlegg`,
1103
+ saksnummerUtenVedlegg: (nr) => `Sak ${nr} \xB7 uten vedlegg`,
1097
1104
  /* 2i — køet uten nett (DD-41, presisert 2026-09-20). Kortet lover ikke svar, og det er
1098
1105
  derfor ikke kvitteringen: kvitteringen kommer når køen tømmes. */
1099
1106
  koIngenNett: "Ingen nett",
@@ -1120,7 +1127,7 @@ var tekst = {
1120
1127
  mineIkkeSendtHode: (spor) => `${stor(spor)} \xB7 ikke sendt enn\xE5`,
1121
1128
  mineFeil: "Innspillene dine kunne ikke hentes n\xE5.",
1122
1129
  /** «Feil · sak 2041» — sporet først, aldri rå id og aldri kontraktens type (DD-50). */
1123
- sakHode: (spor, nr) => `${stor(spor)} \xB7 sak ${saksnr(nr)}`,
1130
+ sakHode: (spor, nr) => `${stor(spor)} \xB7 sak ${nr}`,
1124
1131
  /** F14: svaret kom siden forrige gang denne enheten viste lista. */
1125
1132
  nyttSvar: "Nytt svar",
1126
1133
  // Leietakeren fjernet vedlegget. Bare AT — aldri hvorfor, av hvem eller når.
@@ -1499,7 +1506,7 @@ function Felt({
1499
1506
  }
1500
1507
  ),
1501
1508
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native3.Text, { style: { flex: 1, color: tema.color.textSecondary, fontSize: tema.font.body, lineHeight: tema.lineHeight.body }, children: apen ? tekst.kontekstLinjeApen : tekst.kontekstLinjeLukket }),
1502
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native3.Text, { style: { color: tema.color.actionSecondaryText, fontSize: tema.font.body, fontWeight: tema.weight.semibold }, children: apen ? tekst.kontekstSkjul : tekst.kontekstVis })
1509
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native3.Text, { style: { color: tema.color.actionText, fontSize: tema.font.body, fontWeight: tema.weight.semibold }, children: apen ? tekst.kontekstSkjul : tekst.kontekstVis })
1503
1510
  ]
1504
1511
  }
1505
1512
  ),
@@ -2175,7 +2182,7 @@ var MineInnspill = (0, import_react10.forwardRef)(function MineInnspill2({
2175
2182
  farge: tema.color.brand
2176
2183
  }
2177
2184
  ),
2178
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Meta, { children: venter ? tekst.mineIkkeSendtHode(rad.type === "onske" ? tekst.onske : tekst.feil) : tekst.sakHode(rad.type === "onske" ? tekst.onske : tekst.feil, rad.id) }),
2185
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Meta, { children: venter ? tekst.mineIkkeSendtHode(rad.type === "onske" ? tekst.onske : tekst.feil) : tekst.sakHode(rad.type === "onske" ? tekst.onske : tekst.feil, rad.number) }),
2179
2186
  nytt ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Pille, { testID: "nytt-svar", children: tekst.nyttSvar }) : null
2180
2187
  ] }),
2181
2188
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Brodtekst, { testID: `sakstekst-${nokkel}`, children: rad.text }),
@@ -2754,7 +2761,7 @@ function Widget({
2754
2761
  } else {
2755
2762
  setKvittering({
2756
2763
  art: spor,
2757
- nr: res.submission.id,
2764
+ nr: res.submission.number,
2758
2765
  // Kortet får HELE saken: sporingslinjen leser `status`, `createdAt` og
2759
2766
  // `statusChangedAt` derfra — ingen nye felter, ingen ny kontrakt (DD-28).
2760
2767
  sak: res.submission,
@@ -2764,7 +2771,7 @@ function Widget({
2764
2771
  });
2765
2772
  }
2766
2773
  setSteg("kvittering");
2767
- onSubmitted?.(res.status === "queued" ? { type: spor, queued: true } : { type: spor, queued: false, id: res.submission.id });
2774
+ onSubmitted?.(res.status === "queued" ? { type: spor, queued: true } : { type: spor, queued: false, id: res.submission.id, number: res.submission.number });
2768
2775
  } catch (e) {
2769
2776
  if (e instanceof import_core3.InnspelQueueFullError) setFeil(e.userMessage);
2770
2777
  else if (e instanceof import_core3.InnspelApiError) setFeil(e.message);
@@ -2778,7 +2785,7 @@ function Widget({
2778
2785
  setSender(true);
2779
2786
  try {
2780
2787
  const res = await client.knownIssues.confirm(k.id);
2781
- setKvittering({ art: "jaOgsa", nr: res.id, sak: res });
2788
+ setKvittering({ art: "jaOgsa", nr: res.number, sak: res });
2782
2789
  setSteg("kvittering");
2783
2790
  } catch (e) {
2784
2791
  setFeil(e instanceof import_core3.InnspelApiError ? e.message : "tjeneren svarte ikke.");
@@ -3266,8 +3273,8 @@ function Aksept({
3266
3273
  onPress: () => void import_react_native13.Linking.openURL(String(program.termsUrl)),
3267
3274
  style: { minHeight: tema.touch, flexDirection: "row", alignItems: "center", gap: tema.space.sm },
3268
3275
  children: [
3269
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Ikon, { navn: "open-outline", storrelse: "minste", farge: tema.color.actionSecondaryText }),
3270
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native13.Text, { style: { color: tema.color.actionSecondaryText, fontSize: tema.font.body, fontWeight: tema.weight.semibold }, children: tekst.akseptVilkar })
3276
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Ikon, { navn: "open-outline", storrelse: "minste", farge: tema.color.actionText }),
3277
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native13.Text, { style: { color: tema.color.actionText, fontSize: tema.font.body, fontWeight: tema.weight.semibold }, children: tekst.akseptVilkar })
3271
3278
  ]
3272
3279
  }
3273
3280
  ) : null,