@innspel/react-native 0.9.5 → 0.10.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 +1 -1
- package/dist/index.cjs +186 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +192 -21
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -654,6 +654,16 @@ declare const tekst: {
|
|
|
654
654
|
readonly bildeFjernet: "Bildet er fjernet.";
|
|
655
655
|
readonly svarFra: (leietaker: string) => string;
|
|
656
656
|
readonly svarFraGenerisk: "Svar";
|
|
657
|
+
readonly leggTilMer: "Legg til mer";
|
|
658
|
+
readonly leggTilMerLabel: "Legg til mer på denne saken";
|
|
659
|
+
readonly leggTilMerPlaceholder: "Hva vil du legge til?";
|
|
660
|
+
readonly leggTilMerHint: "Blir stående på saken din, under det du alt har skrevet. Ikke et svar på svaret — det blir ingen samtale her.";
|
|
661
|
+
readonly avbryt: "Avbryt";
|
|
662
|
+
readonly duLaTil: (dato: string) => string;
|
|
663
|
+
readonly lagtTil: "Lagt til";
|
|
664
|
+
readonly tilleggTak: "Du har lagt til tre ganger. Har du mer, send et nytt innspill.";
|
|
665
|
+
readonly tilleggLukket: "Saken er avsluttet — send et nytt innspill.";
|
|
666
|
+
readonly tilleggFeil: (arsak: string) => string;
|
|
657
667
|
readonly sendNytt: "Send nytt innspill";
|
|
658
668
|
/** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
|
|
659
669
|
readonly sendForste: "Send innspill";
|
package/dist/index.d.ts
CHANGED
|
@@ -654,6 +654,16 @@ declare const tekst: {
|
|
|
654
654
|
readonly bildeFjernet: "Bildet er fjernet.";
|
|
655
655
|
readonly svarFra: (leietaker: string) => string;
|
|
656
656
|
readonly svarFraGenerisk: "Svar";
|
|
657
|
+
readonly leggTilMer: "Legg til mer";
|
|
658
|
+
readonly leggTilMerLabel: "Legg til mer på denne saken";
|
|
659
|
+
readonly leggTilMerPlaceholder: "Hva vil du legge til?";
|
|
660
|
+
readonly leggTilMerHint: "Blir stående på saken din, under det du alt har skrevet. Ikke et svar på svaret — det blir ingen samtale her.";
|
|
661
|
+
readonly avbryt: "Avbryt";
|
|
662
|
+
readonly duLaTil: (dato: string) => string;
|
|
663
|
+
readonly lagtTil: "Lagt til";
|
|
664
|
+
readonly tilleggTak: "Du har lagt til tre ganger. Har du mer, send et nytt innspill.";
|
|
665
|
+
readonly tilleggLukket: "Saken er avsluttet — send et nytt innspill.";
|
|
666
|
+
readonly tilleggFeil: (arsak: string) => string;
|
|
657
667
|
readonly sendNytt: "Send nytt innspill";
|
|
658
668
|
/** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
|
|
659
669
|
readonly sendForste: "Send innspill";
|
package/dist/index.js
CHANGED
|
@@ -352,17 +352,20 @@ function useTema() {
|
|
|
352
352
|
|
|
353
353
|
// src/widget/Widget.tsx
|
|
354
354
|
import {
|
|
355
|
-
InnspelApiError,
|
|
355
|
+
InnspelApiError as InnspelApiError2,
|
|
356
356
|
InnspelQueueFullError
|
|
357
357
|
} from "@innspel/core";
|
|
358
358
|
import { useCallback as useCallback2, useContext as useContext3, useEffect as useEffect2, useRef as useRef3, useState as useState4 } from "react";
|
|
359
|
-
import { KeyboardAvoidingView, Modal, Pressable as
|
|
359
|
+
import { KeyboardAvoidingView, Modal, Pressable as Pressable6, View as View8 } from "react-native";
|
|
360
360
|
import { initialWindowMetrics, SafeAreaInsetsContext } from "react-native-safe-area-context";
|
|
361
361
|
|
|
362
362
|
// src/Ikon.tsx
|
|
363
363
|
import "react";
|
|
364
364
|
import { SvgXml } from "react-native-svg";
|
|
365
365
|
|
|
366
|
+
// ../../node_modules/ionicons/dist/svg/add-outline.svg
|
|
367
|
+
var add_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M256 112v288M400 256H112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32px"/></svg>';
|
|
368
|
+
|
|
366
369
|
// ../../node_modules/ionicons/dist/svg/arrow-back-outline.svg
|
|
367
370
|
var arrow_back_outline_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="ionicon"><path d="M244 400 100 256l144-144M120 256h292" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48px"/></svg>';
|
|
368
371
|
|
|
@@ -458,6 +461,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
458
461
|
var utenTittel = (svg) => svg.replace(/<title>[\s\S]*?<\/title>/g, "");
|
|
459
462
|
var IKONER = Object.fromEntries(
|
|
460
463
|
Object.entries({
|
|
464
|
+
"add-outline": add_outline_default,
|
|
461
465
|
"arrow-back-outline": arrow_back_outline_default,
|
|
462
466
|
"brush-outline": brush_outline_default,
|
|
463
467
|
// Fylte varianter: bare på sporvalgets to kort (DD-63), der ikonet bærer stemningen.
|
|
@@ -868,6 +872,17 @@ var tekst = {
|
|
|
868
872
|
bildeFjernet: "Bildet er fjernet.",
|
|
869
873
|
svarFra: (leietaker) => `Svar fra ${leietaker}`,
|
|
870
874
|
svarFraGenerisk: "Svar",
|
|
875
|
+
// DD-69 — «Legg til mer»: innsenderens egne ord, ikke et svar på svaret.
|
|
876
|
+
leggTilMer: "Legg til mer",
|
|
877
|
+
leggTilMerLabel: "Legg til mer p\xE5 denne saken",
|
|
878
|
+
leggTilMerPlaceholder: "Hva vil du legge til?",
|
|
879
|
+
leggTilMerHint: "Blir st\xE5ende p\xE5 saken din, under det du alt har skrevet. Ikke et svar p\xE5 svaret \u2014 det blir ingen samtale her.",
|
|
880
|
+
avbryt: "Avbryt",
|
|
881
|
+
duLaTil: (dato) => `Du la til \xB7 ${dato}`,
|
|
882
|
+
lagtTil: "Lagt til",
|
|
883
|
+
tilleggTak: "Du har lagt til tre ganger. Har du mer, send et nytt innspill.",
|
|
884
|
+
tilleggLukket: "Saken er avsluttet \u2014 send et nytt innspill.",
|
|
885
|
+
tilleggFeil: (arsak) => `Kunne ikke legge til: ${arsak} Teksten din er beholdt.`,
|
|
871
886
|
sendNytt: "Send nytt innspill",
|
|
872
887
|
/** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
|
|
873
888
|
sendForste: "Send innspill",
|
|
@@ -1518,8 +1533,9 @@ function Kvittering({
|
|
|
1518
1533
|
}
|
|
1519
1534
|
|
|
1520
1535
|
// src/widget/MineInnspill.tsx
|
|
1536
|
+
import { InnspelApiError } from "@innspel/core";
|
|
1521
1537
|
import { useEffect, useState as useState2 } from "react";
|
|
1522
|
-
import { ActivityIndicator as ActivityIndicator2, ScrollView as ScrollView3, Text as Text6, View as View6 } from "react-native";
|
|
1538
|
+
import { ActivityIndicator as ActivityIndicator2, Pressable as Pressable4, ScrollView as ScrollView3, Text as Text6, TextInput as TextInput2, View as View6 } from "react-native";
|
|
1523
1539
|
|
|
1524
1540
|
// src/widget/nyttSvar.ts
|
|
1525
1541
|
var N\u00D8KKEL = "innspel:svar-sett";
|
|
@@ -1548,9 +1564,38 @@ function MineInnspill({
|
|
|
1548
1564
|
laster,
|
|
1549
1565
|
tenantName,
|
|
1550
1566
|
onNytt,
|
|
1551
|
-
storage
|
|
1567
|
+
storage,
|
|
1568
|
+
leggTil,
|
|
1569
|
+
onOppdatert,
|
|
1570
|
+
minTextLength,
|
|
1571
|
+
textMaxLength
|
|
1552
1572
|
}) {
|
|
1553
1573
|
const tema = useTema();
|
|
1574
|
+
const min = minTextLength ?? 10;
|
|
1575
|
+
const maks = textMaxLength ?? 280;
|
|
1576
|
+
const [apen, setApen] = useState2(null);
|
|
1577
|
+
const [utkast, setUtkast] = useState2("");
|
|
1578
|
+
const [sender, setSender] = useState2(false);
|
|
1579
|
+
const [feil, setFeil] = useState2();
|
|
1580
|
+
const [lagtTil, setLagtTil] = useState2();
|
|
1581
|
+
const send = async (id) => {
|
|
1582
|
+
if (!leggTil) return;
|
|
1583
|
+
setSender(true);
|
|
1584
|
+
setFeil(void 0);
|
|
1585
|
+
try {
|
|
1586
|
+
const sak = await leggTil(id, utkast.trim());
|
|
1587
|
+
onOppdatert?.(sak);
|
|
1588
|
+
setApen(null);
|
|
1589
|
+
setUtkast("");
|
|
1590
|
+
setLagtTil(id);
|
|
1591
|
+
} catch (e) {
|
|
1592
|
+
const kode = e instanceof InnspelApiError ? e.code : void 0;
|
|
1593
|
+
const tekstFeil = kode === "addendum_limit_reached" ? tekst.tilleggTak : kode === "submission_closed" ? tekst.tilleggLukket : tekst.tilleggFeil(e instanceof Error && e.message ? e.message : "ukjent feil.");
|
|
1594
|
+
setFeil({ id, tekst: tekstFeil });
|
|
1595
|
+
} finally {
|
|
1596
|
+
setSender(false);
|
|
1597
|
+
}
|
|
1598
|
+
};
|
|
1554
1599
|
const [visning, setVisning] = useState2(() => rader.map((rad) => ({ rad, nytt: false })));
|
|
1555
1600
|
useEffect(() => {
|
|
1556
1601
|
let gjelder = true;
|
|
@@ -1572,7 +1617,16 @@ function MineInnspill({
|
|
|
1572
1617
|
const venter = rad.pending === true;
|
|
1573
1618
|
const v = venter ? venterVisning : statusVisning(rad.status, rad.type, rad.deadlineAt);
|
|
1574
1619
|
const nokkel = venter ? rad.clientRef : rad.id;
|
|
1620
|
+
const sakId = venter ? void 0 : rad.id;
|
|
1575
1621
|
const svar = venter ? void 0 : rad.reply;
|
|
1622
|
+
const tillegg = venter ? [] : rad.addenda ?? [];
|
|
1623
|
+
const kanLeggeTil = !venter && !!leggTil && rad.canAddAddendum === true;
|
|
1624
|
+
const taketN\u00E5dd = !venter && rad.canAddAddendum === false && tillegg.length >= 3;
|
|
1625
|
+
const feltApent = sakId !== void 0 && apen === sakId;
|
|
1626
|
+
const brukt = utkast.length;
|
|
1627
|
+
const forKort = brukt < min;
|
|
1628
|
+
const full = brukt >= maks;
|
|
1629
|
+
const visTeller = brukt >= maks * 0.8;
|
|
1576
1630
|
return /* @__PURE__ */ jsxs6(Card, { dashed: venter, children: [
|
|
1577
1631
|
/* @__PURE__ */ jsxs6(View6, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs, flexWrap: "wrap" }, children: [
|
|
1578
1632
|
/* @__PURE__ */ jsx7(Hint, { children: venter ? `${tekst.mineIkkeSendt} \xB7 ${rad.type === "onske" ? tekst.onske : tekst.feil}` : tekst.sakHode(rad.type === "onske" ? tekst.onske : tekst.feil, rad.id) }),
|
|
@@ -1603,10 +1657,123 @@ function MineInnspill({
|
|
|
1603
1657
|
children: rad.text
|
|
1604
1658
|
}
|
|
1605
1659
|
),
|
|
1660
|
+
tillegg.length > 0 ? /* @__PURE__ */ jsx7(View6, { testID: `tillegg-${sakId}`, style: { gap: tema.space.xs }, children: tillegg.map((a) => /* @__PURE__ */ jsxs6(
|
|
1661
|
+
View6,
|
|
1662
|
+
{
|
|
1663
|
+
style: {
|
|
1664
|
+
borderLeftWidth: tema.hairline * 2,
|
|
1665
|
+
borderLeftColor: tema.color.border,
|
|
1666
|
+
paddingLeft: tema.space.sm,
|
|
1667
|
+
gap: tema.space.xs
|
|
1668
|
+
},
|
|
1669
|
+
children: [
|
|
1670
|
+
/* @__PURE__ */ jsxs6(View6, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs }, children: [
|
|
1671
|
+
/* @__PURE__ */ jsx7(Ikon, { navn: "add-outline", storrelse: "minste", farge: tema.color.textSecondary }),
|
|
1672
|
+
/* @__PURE__ */ jsx7(Text6, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.duLaTil(formaterFrist(a.createdAt)) })
|
|
1673
|
+
] }),
|
|
1674
|
+
/* @__PURE__ */ jsx7(Text6, { style: { color: tema.color.textPrimary, fontSize: tema.font.small, lineHeight: tema.lineHeight.small }, children: a.text })
|
|
1675
|
+
]
|
|
1676
|
+
},
|
|
1677
|
+
a.id
|
|
1678
|
+
)) }) : null,
|
|
1606
1679
|
/* @__PURE__ */ jsxs6(View6, { style: { gap: tema.space.xs }, children: [
|
|
1607
1680
|
/* @__PURE__ */ jsx7(StatusPill, { ikon: v.ikon, etikett: v.etikett, fg: v.fg, bg: v.bg }),
|
|
1608
1681
|
/* @__PURE__ */ jsx7(Hint, { children: v.lofte })
|
|
1609
1682
|
] }),
|
|
1683
|
+
sakId !== void 0 && lagtTil === sakId ? /* @__PURE__ */ jsx7(Text6, { accessibilityLiveRegion: "polite", testID: `lagt-til-${sakId}`, style: { color: tema.color.success, fontSize: tema.font.small }, children: tekst.lagtTil }) : null,
|
|
1684
|
+
feltApent ? /* @__PURE__ */ jsxs6(View6, { testID: `tillegg-felt-${sakId}`, style: { gap: tema.space.sm }, children: [
|
|
1685
|
+
/* @__PURE__ */ jsx7(Text6, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.leggTilMerLabel }),
|
|
1686
|
+
/* @__PURE__ */ jsx7(
|
|
1687
|
+
TextInput2,
|
|
1688
|
+
{
|
|
1689
|
+
testID: "tillegg-tekst",
|
|
1690
|
+
accessibilityLabel: tekst.leggTilMerLabel,
|
|
1691
|
+
value: utkast,
|
|
1692
|
+
onChangeText: setUtkast,
|
|
1693
|
+
maxLength: maks,
|
|
1694
|
+
multiline: true,
|
|
1695
|
+
numberOfLines: 3,
|
|
1696
|
+
autoFocus: true,
|
|
1697
|
+
placeholder: tekst.leggTilMerPlaceholder,
|
|
1698
|
+
placeholderTextColor: tema.color.textMuted,
|
|
1699
|
+
style: {
|
|
1700
|
+
backgroundColor: tema.color.surfaceRaised,
|
|
1701
|
+
borderWidth: tema.hairline,
|
|
1702
|
+
borderColor: full ? tema.color.warning : tema.color.borderStrong,
|
|
1703
|
+
borderRadius: tema.radius.md,
|
|
1704
|
+
padding: tema.space.md,
|
|
1705
|
+
color: tema.color.textPrimary,
|
|
1706
|
+
fontSize: tema.font.body,
|
|
1707
|
+
lineHeight: tema.lineHeight.body,
|
|
1708
|
+
minHeight: tema.touch * 2,
|
|
1709
|
+
textAlignVertical: "top"
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
),
|
|
1713
|
+
visTeller ? /* @__PURE__ */ jsxs6(
|
|
1714
|
+
Text6,
|
|
1715
|
+
{
|
|
1716
|
+
testID: "tillegg-teller",
|
|
1717
|
+
accessibilityLiveRegion: full ? "assertive" : "polite",
|
|
1718
|
+
style: { alignSelf: "flex-end", color: full ? tema.color.warning : tema.color.textMuted, fontSize: tema.font.small },
|
|
1719
|
+
children: [
|
|
1720
|
+
brukt,
|
|
1721
|
+
" / ",
|
|
1722
|
+
maks,
|
|
1723
|
+
full ? tekst.tellerFull : ""
|
|
1724
|
+
]
|
|
1725
|
+
}
|
|
1726
|
+
) : null,
|
|
1727
|
+
feil?.id === sakId ? /* @__PURE__ */ jsx7(Text6, { accessibilityLiveRegion: "assertive", testID: `tillegg-feil-${sakId}`, style: { color: tema.color.danger, fontSize: tema.font.small, lineHeight: tema.lineHeight.small }, children: feil.tekst }) : null,
|
|
1728
|
+
/* @__PURE__ */ jsxs6(View6, { style: { flexDirection: "row", gap: tema.space.sm }, children: [
|
|
1729
|
+
/* @__PURE__ */ jsx7(
|
|
1730
|
+
Btn,
|
|
1731
|
+
{
|
|
1732
|
+
testID: "tillegg-send",
|
|
1733
|
+
label: sender ? tekst.sender : tekst.send,
|
|
1734
|
+
disabled: forKort || sender,
|
|
1735
|
+
busy: sender,
|
|
1736
|
+
...forKort ? { hint: tekst.forKort(min) } : {},
|
|
1737
|
+
onPress: () => sakId !== void 0 && void send(sakId),
|
|
1738
|
+
grow: true
|
|
1739
|
+
}
|
|
1740
|
+
),
|
|
1741
|
+
/* @__PURE__ */ jsx7(
|
|
1742
|
+
Btn,
|
|
1743
|
+
{
|
|
1744
|
+
testID: "tillegg-avbryt",
|
|
1745
|
+
label: tekst.avbryt,
|
|
1746
|
+
variant: "secondary",
|
|
1747
|
+
onPress: () => {
|
|
1748
|
+
setApen(null);
|
|
1749
|
+
setUtkast("");
|
|
1750
|
+
setFeil(void 0);
|
|
1751
|
+
},
|
|
1752
|
+
grow: true
|
|
1753
|
+
}
|
|
1754
|
+
)
|
|
1755
|
+
] }),
|
|
1756
|
+
/* @__PURE__ */ jsx7(Hint, { children: tekst.leggTilMerHint })
|
|
1757
|
+
] }) : kanLeggeTil ? /* @__PURE__ */ jsxs6(
|
|
1758
|
+
Pressable4,
|
|
1759
|
+
{
|
|
1760
|
+
testID: `legg-til-mer-${sakId}`,
|
|
1761
|
+
accessibilityRole: "button",
|
|
1762
|
+
accessibilityLabel: tekst.leggTilMerLabel,
|
|
1763
|
+
onPress: () => {
|
|
1764
|
+
if (sakId === void 0) return;
|
|
1765
|
+
setApen(sakId);
|
|
1766
|
+
setUtkast("");
|
|
1767
|
+
setFeil(void 0);
|
|
1768
|
+
setLagtTil(void 0);
|
|
1769
|
+
},
|
|
1770
|
+
style: { alignSelf: "flex-start", minHeight: tema.touch, flexDirection: "row", alignItems: "center", gap: tema.space.xs, paddingHorizontal: tema.space.sm },
|
|
1771
|
+
children: [
|
|
1772
|
+
/* @__PURE__ */ jsx7(Ikon, { navn: "add-outline", storrelse: "minste", farge: tema.color.actionSecondaryText }),
|
|
1773
|
+
/* @__PURE__ */ jsx7(Text6, { style: { color: tema.color.actionSecondaryText, fontSize: tema.font.body, fontWeight: tema.weight.semibold }, children: tekst.leggTilMer })
|
|
1774
|
+
]
|
|
1775
|
+
}
|
|
1776
|
+
) : taketN\u00E5dd ? /* @__PURE__ */ jsx7(Hint, { children: tekst.tilleggTak }) : null,
|
|
1610
1777
|
!venter && rad.attachmentRemoved ? /* @__PURE__ */ jsxs6(View6, { testID: `bilde-fjernet-${rad.id}`, style: { flexDirection: "row", gap: tema.space.xs, alignItems: "center" }, children: [
|
|
1611
1778
|
/* @__PURE__ */ jsx7(Ikon, { navn: "trash-outline", storrelse: "minste", farge: tema.color.textMuted }),
|
|
1612
1779
|
/* @__PURE__ */ jsx7(Hint, { children: tekst.bildeFjernet })
|
|
@@ -1645,7 +1812,7 @@ function MineInnspill({
|
|
|
1645
1812
|
// src/widget/Skjermbilde.tsx
|
|
1646
1813
|
import { skaler, strokTilRekter, treffer, trykkTilRekt } from "@innspel/core";
|
|
1647
1814
|
import { useCallback, useMemo as useMemo3, useRef as useRef2, useState as useState3 } from "react";
|
|
1648
|
-
import { Image as Image2, Pressable as
|
|
1815
|
+
import { Image as Image2, Pressable as Pressable5, StyleSheet, Text as Text7, View as View7 } from "react-native";
|
|
1649
1816
|
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1650
1817
|
function Skjermbilde({
|
|
1651
1818
|
bilde,
|
|
@@ -1706,7 +1873,7 @@ function Skjermbilde({
|
|
|
1706
1873
|
const knapp = (id, ikon, label) => {
|
|
1707
1874
|
const valgt = id === "allTekst" ? allTekst : verktoy === id && !allTekst;
|
|
1708
1875
|
return /* @__PURE__ */ jsxs7(
|
|
1709
|
-
|
|
1876
|
+
Pressable5,
|
|
1710
1877
|
{
|
|
1711
1878
|
testID: `verktoy-${id}`,
|
|
1712
1879
|
accessibilityRole: "button",
|
|
@@ -2101,7 +2268,7 @@ function Widget({
|
|
|
2101
2268
|
onSubmitted?.(res.status === "queued" ? { type: spor, queued: true } : { type: spor, queued: false, id: res.submission.id });
|
|
2102
2269
|
} catch (e) {
|
|
2103
2270
|
if (e instanceof InnspelQueueFullError) setFeil(e.userMessage);
|
|
2104
|
-
else if (e instanceof
|
|
2271
|
+
else if (e instanceof InnspelApiError2) setFeil(e.message);
|
|
2105
2272
|
else setFeil("tjeneren svarte ikke.");
|
|
2106
2273
|
} finally {
|
|
2107
2274
|
setSender(false);
|
|
@@ -2115,7 +2282,7 @@ function Widget({
|
|
|
2115
2282
|
setKvittering({ art: "jaOgsa", nr: res.id });
|
|
2116
2283
|
setSteg("kvittering");
|
|
2117
2284
|
} catch (e) {
|
|
2118
|
-
setFeil(e instanceof
|
|
2285
|
+
setFeil(e instanceof InnspelApiError2 ? e.message : "tjeneren svarte ikke.");
|
|
2119
2286
|
} finally {
|
|
2120
2287
|
setSender(false);
|
|
2121
2288
|
}
|
|
@@ -2183,7 +2350,7 @@ function Widget({
|
|
|
2183
2350
|
/* @__PURE__ */ jsxs8(View8, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
2184
2351
|
steg !== "valg" && steg !== "kvittering" ? /* @__PURE__ */ jsx9(Btn, { variant: "ghost", testID: "tilbake", ikon: "arrow-back-outline", label: tekst.tilbake, onPress: gaaTilbake }) : /* @__PURE__ */ jsx9(View8, {}),
|
|
2185
2352
|
/* @__PURE__ */ jsx9(
|
|
2186
|
-
|
|
2353
|
+
Pressable6,
|
|
2187
2354
|
{
|
|
2188
2355
|
testID: "lukk",
|
|
2189
2356
|
accessibilityRole: "button",
|
|
@@ -2280,7 +2447,11 @@ function Widget({
|
|
|
2280
2447
|
rader: mine,
|
|
2281
2448
|
laster: lasterMine,
|
|
2282
2449
|
...tenantName ? { tenantName } : {},
|
|
2283
|
-
onNytt: nyttFraMine
|
|
2450
|
+
onNytt: nyttFraMine,
|
|
2451
|
+
leggTil: (id, text) => client.subjects.addAddendum(id, text),
|
|
2452
|
+
onOppdatert: (sak) => setMine((liste) => liste.map((r) => r.pending !== true && r.id === sak.id ? sak : r)),
|
|
2453
|
+
minTextLength: innstillinger.minTextLength,
|
|
2454
|
+
textMaxLength: innstillinger.textMaxLength
|
|
2284
2455
|
}
|
|
2285
2456
|
) : null
|
|
2286
2457
|
]
|
|
@@ -2389,14 +2560,14 @@ function InnspelPrivate({ children, style }) {
|
|
|
2389
2560
|
|
|
2390
2561
|
// src/program/InnspelProgram.tsx
|
|
2391
2562
|
import {
|
|
2392
|
-
InnspelApiError as
|
|
2563
|
+
InnspelApiError as InnspelApiError3
|
|
2393
2564
|
} from "@innspel/core";
|
|
2394
2565
|
import { useCallback as useCallback4, useEffect as useEffect4, useState as useState7 } from "react";
|
|
2395
|
-
import { Modal as Modal4, Pressable as
|
|
2566
|
+
import { Modal as Modal4, Pressable as Pressable9, Text as Text12, View as View15 } from "react-native";
|
|
2396
2567
|
|
|
2397
2568
|
// src/program/Aksept.tsx
|
|
2398
2569
|
import "react";
|
|
2399
|
-
import { Linking, Modal as Modal2, Pressable as
|
|
2570
|
+
import { Linking, Modal as Modal2, Pressable as Pressable7, ScrollView as ScrollView4, Text as Text8, View as View11 } from "react-native";
|
|
2400
2571
|
|
|
2401
2572
|
// src/program/periode.ts
|
|
2402
2573
|
var MANEDER = [
|
|
@@ -2517,7 +2688,7 @@ function Aksept({
|
|
|
2517
2688
|
] }),
|
|
2518
2689
|
program.termsUrl && !program.commitmentFree ? /* @__PURE__ */ jsxs10(View11, { style: { gap: tema.space.xs }, children: [
|
|
2519
2690
|
/* @__PURE__ */ jsx12(
|
|
2520
|
-
|
|
2691
|
+
Pressable7,
|
|
2521
2692
|
{
|
|
2522
2693
|
testID: "vilkar-lenke",
|
|
2523
2694
|
accessibilityRole: "link",
|
|
@@ -2566,7 +2737,7 @@ function Aksept({
|
|
|
2566
2737
|
|
|
2567
2738
|
// src/program/HvordanGikkDet.tsx
|
|
2568
2739
|
import { useState as useState6 } from "react";
|
|
2569
|
-
import { Modal as Modal3, Pressable as
|
|
2740
|
+
import { Modal as Modal3, Pressable as Pressable8, Text as Text9, TextInput as TextInput3, View as View12 } from "react-native";
|
|
2570
2741
|
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2571
2742
|
var UTFALL = [
|
|
2572
2743
|
{ verdi: "fungerte", ikon: "checkmark-circle-outline", etikett: tekst.utfallFungerte },
|
|
@@ -2607,7 +2778,7 @@ function HvordanGikkDet({
|
|
|
2607
2778
|
/* @__PURE__ */ jsx13(View12, { testID: "utfall-gruppe", accessibilityRole: "radiogroup", accessibilityLabel: tekst.hvordanGikkDet, style: { flexDirection: "row", gap: tema.space.sm }, children: UTFALL.map((u) => {
|
|
2608
2779
|
const aktiv = valgt === u.verdi;
|
|
2609
2780
|
return /* @__PURE__ */ jsxs11(
|
|
2610
|
-
|
|
2781
|
+
Pressable8,
|
|
2611
2782
|
{
|
|
2612
2783
|
testID: `utfall-${u.verdi}`,
|
|
2613
2784
|
accessibilityRole: "radio",
|
|
@@ -2637,7 +2808,7 @@ function HvordanGikkDet({
|
|
|
2637
2808
|
/* @__PURE__ */ jsxs11(View12, { style: { gap: tema.space.xs }, children: [
|
|
2638
2809
|
/* @__PURE__ */ jsx13(Text9, { style: { color: tema.color.textSecondary, fontSize: tema.font.small }, children: tekst.setningLabel }),
|
|
2639
2810
|
/* @__PURE__ */ jsx13(
|
|
2640
|
-
|
|
2811
|
+
TextInput3,
|
|
2641
2812
|
{
|
|
2642
2813
|
testID: "hvordan-setning",
|
|
2643
2814
|
accessibilityLabel: tekst.setningLabel,
|
|
@@ -2838,7 +3009,7 @@ function InnspelProgram({
|
|
|
2838
3009
|
}
|
|
2839
3010
|
setDialog(void 0);
|
|
2840
3011
|
} catch (e) {
|
|
2841
|
-
setSvarFeil(e instanceof
|
|
3012
|
+
setSvarFeil(e instanceof InnspelApiError3 ? e.message : "tjeneren svarte ikke.");
|
|
2842
3013
|
} finally {
|
|
2843
3014
|
setSender(false);
|
|
2844
3015
|
}
|
|
@@ -2867,7 +3038,7 @@ function InnspelProgram({
|
|
|
2867
3038
|
setViserAksept(false);
|
|
2868
3039
|
onEndring?.(ny);
|
|
2869
3040
|
} catch (e) {
|
|
2870
|
-
setFeil(e instanceof
|
|
3041
|
+
setFeil(e instanceof InnspelApiError3 ? e.message : "tjeneren svarte ikke.");
|
|
2871
3042
|
} finally {
|
|
2872
3043
|
setSender(false);
|
|
2873
3044
|
}
|
|
@@ -2881,7 +3052,7 @@ function InnspelProgram({
|
|
|
2881
3052
|
setViserGaaUt(false);
|
|
2882
3053
|
onEndring?.(null);
|
|
2883
3054
|
} catch (e) {
|
|
2884
|
-
setFeil(e instanceof
|
|
3055
|
+
setFeil(e instanceof InnspelApiError3 ? e.message : "tjeneren svarte ikke.");
|
|
2885
3056
|
} finally {
|
|
2886
3057
|
setSender(false);
|
|
2887
3058
|
}
|
|
@@ -3010,7 +3181,7 @@ function InnspelProgram({
|
|
|
3010
3181
|
/* @__PURE__ */ jsx16(Hint, { children: tekst.invitasjonKontakter(program.maxContacts) })
|
|
3011
3182
|
] }),
|
|
3012
3183
|
/* @__PURE__ */ jsx16(
|
|
3013
|
-
|
|
3184
|
+
Pressable9,
|
|
3014
3185
|
{
|
|
3015
3186
|
testID: "avvis-invitasjon",
|
|
3016
3187
|
accessibilityRole: "button",
|