@innspel/react-native 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +67 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +121 -62
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -902,6 +902,8 @@ var tekst = {
|
|
|
902
902
|
mineSak: (nr) => `Sak ${saksnr(nr)}`,
|
|
903
903
|
/** «Feil · sak 2041» — sporet først, aldri rå id og aldri kontraktens type (DD-50). */
|
|
904
904
|
sakHode: (spor, nr) => `${stor(spor)} \xB7 sak ${saksnr(nr)}`,
|
|
905
|
+
/** F14: svaret kom siden forrige gang denne enheten viste lista. */
|
|
906
|
+
nyttSvar: "Nytt svar",
|
|
905
907
|
// Leietakeren fjernet vedlegget. Bare AT — aldri hvorfor, av hvem eller når.
|
|
906
908
|
bildeFjernet: "Bildet er fjernet.",
|
|
907
909
|
svarFra: (leietaker) => `Svar fra ${leietaker}`,
|
|
@@ -1554,23 +1556,78 @@ function Kvittering({
|
|
|
1554
1556
|
// src/widget/MineInnspill.tsx
|
|
1555
1557
|
var import_react9 = require("react");
|
|
1556
1558
|
var import_react_native7 = require("react-native");
|
|
1559
|
+
|
|
1560
|
+
// src/widget/nyttSvar.ts
|
|
1561
|
+
var N\u00D8KKEL = "innspel:svar-sett";
|
|
1562
|
+
async function merkNyeSvar(rader, storage) {
|
|
1563
|
+
let grense = 0;
|
|
1564
|
+
try {
|
|
1565
|
+
grense = Number.parseInt(await storage.get(N\u00D8KKEL) ?? "", 10) || 0;
|
|
1566
|
+
} catch {
|
|
1567
|
+
grense = 0;
|
|
1568
|
+
}
|
|
1569
|
+
const tid = (r) => r.pending === true ? NaN : Date.parse(r.reply?.at ?? "");
|
|
1570
|
+
const merket = rader.map((rad) => ({ rad, nytt: tid(rad) > grense }));
|
|
1571
|
+
return [...merket.filter((m) => m.nytt), ...merket.filter((m) => !m.nytt)];
|
|
1572
|
+
}
|
|
1573
|
+
async function markerSvarSett(storage, n\u00E5 = Date.now()) {
|
|
1574
|
+
try {
|
|
1575
|
+
await storage.set(N\u00D8KKEL, String(n\u00E5));
|
|
1576
|
+
} catch {
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
// src/widget/MineInnspill.tsx
|
|
1557
1581
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1558
1582
|
function MineInnspill({
|
|
1559
1583
|
rader,
|
|
1560
1584
|
laster,
|
|
1561
1585
|
tenantName,
|
|
1562
|
-
onNytt
|
|
1586
|
+
onNytt,
|
|
1587
|
+
storage
|
|
1563
1588
|
}) {
|
|
1564
1589
|
const tema = useTema();
|
|
1590
|
+
const [visning, setVisning] = (0, import_react9.useState)(() => rader.map((rad) => ({ rad, nytt: false })));
|
|
1591
|
+
(0, import_react9.useEffect)(() => {
|
|
1592
|
+
let gjelder = true;
|
|
1593
|
+
void merkNyeSvar(rader, storage).then((m) => {
|
|
1594
|
+
if (gjelder) setVisning(m);
|
|
1595
|
+
}).catch(() => {
|
|
1596
|
+
if (gjelder) setVisning(rader.map((rad) => ({ rad, nytt: false })));
|
|
1597
|
+
});
|
|
1598
|
+
return () => {
|
|
1599
|
+
gjelder = false;
|
|
1600
|
+
};
|
|
1601
|
+
}, [storage, rader]);
|
|
1602
|
+
(0, import_react9.useEffect)(() => {
|
|
1603
|
+
if (!laster && rader.length) void markerSvarSett(storage).catch(() => void 0);
|
|
1604
|
+
}, [storage, laster, rader]);
|
|
1565
1605
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native7.View, { style: { flex: 1, gap: tema.space.md }, children: [
|
|
1566
1606
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(H, { sub: tekst.mineUnder, children: tekst.mineTittel }),
|
|
1567
|
-
laster ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.ActivityIndicator, { accessibilityLabel: "Henter innspillene dine", color: tema.color.textSecondary }) : rader.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Hint, { children: tekst.mineTom }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.ScrollView, { style: { flex: 1 }, contentContainerStyle: { gap: tema.space.sm }, children:
|
|
1607
|
+
laster ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.ActivityIndicator, { accessibilityLabel: "Henter innspillene dine", color: tema.color.textSecondary }) : rader.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Hint, { children: tekst.mineTom }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.ScrollView, { style: { flex: 1 }, contentContainerStyle: { gap: tema.space.sm }, children: visning.map(({ rad, nytt }) => {
|
|
1568
1608
|
const venter = rad.pending === true;
|
|
1569
1609
|
const v = venter ? venterVisning : statusVisning(rad.status, rad.type, rad.deadlineAt);
|
|
1570
1610
|
const nokkel = venter ? rad.clientRef : rad.id;
|
|
1571
1611
|
const svar = venter ? void 0 : rad.reply;
|
|
1572
1612
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Card, { dashed: venter, children: [
|
|
1573
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.
|
|
1613
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native7.View, { style: { flexDirection: "row", alignItems: "center", gap: tema.space.xs, flexWrap: "wrap" }, children: [
|
|
1614
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Hint, { children: venter ? `${tekst.mineIkkeSendt} \xB7 ${rad.type === "onske" ? tekst.onske : tekst.feil}` : tekst.sakHode(rad.type === "onske" ? tekst.onske : tekst.feil, rad.id) }),
|
|
1615
|
+
nytt ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1616
|
+
import_react_native7.Text,
|
|
1617
|
+
{
|
|
1618
|
+
testID: "nytt-svar",
|
|
1619
|
+
style: {
|
|
1620
|
+
color: tema.color.info,
|
|
1621
|
+
backgroundColor: tema.color.infoBg,
|
|
1622
|
+
fontSize: tema.font.tiny,
|
|
1623
|
+
fontWeight: tema.weight.semibold,
|
|
1624
|
+
borderRadius: tema.radius.pill,
|
|
1625
|
+
paddingHorizontal: tema.space.sm
|
|
1626
|
+
},
|
|
1627
|
+
children: tekst.nyttSvar
|
|
1628
|
+
}
|
|
1629
|
+
) : null
|
|
1630
|
+
] }),
|
|
1574
1631
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1575
1632
|
import_react_native7.Text,
|
|
1576
1633
|
{
|
|
@@ -2062,7 +2119,7 @@ function Widget({
|
|
|
2062
2119
|
text: verdi,
|
|
2063
2120
|
...vedlegg ? { attachment: vedlegg } : {},
|
|
2064
2121
|
...spor === "feil" && lenketTil ? { relatedKnownIssueId: lenketTil.id } : {},
|
|
2065
|
-
|
|
2122
|
+
context: fjernetKontekst(client, fjernede, apneOpsjoner?.screen)
|
|
2066
2123
|
});
|
|
2067
2124
|
if (res.status === "queued") {
|
|
2068
2125
|
setKvittering({ art: "k\xF8", ...res.attachment ? { vedlegg: "forkastet" } : {} });
|
|
@@ -2083,7 +2140,7 @@ function Widget({
|
|
|
2083
2140
|
} finally {
|
|
2084
2141
|
setSender(false);
|
|
2085
2142
|
}
|
|
2086
|
-
}, [client, spor, verdi, vedlegg, lenketTil, fjernede]);
|
|
2143
|
+
}, [client, spor, verdi, vedlegg, lenketTil, fjernede, apneOpsjoner?.screen]);
|
|
2087
2144
|
const jaOgsa = (0, import_react11.useCallback)(
|
|
2088
2145
|
async (k) => {
|
|
2089
2146
|
setSender(true);
|
|
@@ -2210,7 +2267,7 @@ function Widget({
|
|
|
2210
2267
|
onEndre: endreTekst,
|
|
2211
2268
|
minTextLength: innstillinger.minTextLength,
|
|
2212
2269
|
textMaxLength: innstillinger.textMaxLength,
|
|
2213
|
-
kontekst: client.context,
|
|
2270
|
+
kontekst: { ...client.context, ...apneOpsjoner?.screen ? { screen: apneOpsjoner.screen } : {} },
|
|
2214
2271
|
fjernedeFelter: fjernede,
|
|
2215
2272
|
onFjernKontekst: (f) => setFjernede((x) => [...x, f]),
|
|
2216
2273
|
...lenketTil ? { lenketTil, onFjernLenke: () => setLenketTil(void 0) } : {},
|
|
@@ -2253,6 +2310,7 @@ function Widget({
|
|
|
2253
2310
|
steg === "mine" ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2254
2311
|
MineInnspill,
|
|
2255
2312
|
{
|
|
2313
|
+
storage: client.storage,
|
|
2256
2314
|
rader: mine,
|
|
2257
2315
|
laster: lasterMine,
|
|
2258
2316
|
...tenantName ? { tenantName } : {},
|
|
@@ -2277,9 +2335,10 @@ function useNettstatus(client) {
|
|
|
2277
2335
|
}, [c]);
|
|
2278
2336
|
return online;
|
|
2279
2337
|
}
|
|
2280
|
-
function fjernetKontekst(client, fjernede) {
|
|
2338
|
+
function fjernetKontekst(client, fjernede, skjerm) {
|
|
2281
2339
|
const ut = {};
|
|
2282
|
-
|
|
2340
|
+
if (skjerm) ut["screen"] = skjerm;
|
|
2341
|
+
for (const k of [...Object.keys(client.context), "screen"]) {
|
|
2283
2342
|
if (k !== "sdkVersion" && fjernede.includes(k)) ut[k] = void 0;
|
|
2284
2343
|
}
|
|
2285
2344
|
return ut;
|