@burdenoff/microfe-devportal 2026.828.1 → 2026.830.2
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/devportal/AdminDevportalRoot.d.ts.map +1 -1
- package/dist/devportal/AdminDevportalRoot.js +16 -19
- package/dist/devportal/AdminDevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoot.d.ts.map +1 -1
- package/dist/devportal/DevportalRoot.js +36 -39
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +41 -41
- package/dist/devportal/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/devportal/components/ConfirmDialog.js +19 -22
- package/dist/devportal/components/ConfirmDialog.js.map +1 -1
- package/dist/devportal/components/DataTable.d.ts.map +1 -1
- package/dist/devportal/components/DataTable.js +31 -34
- package/dist/devportal/components/DataTable.js.map +1 -1
- package/dist/devportal/components/FeatureFlaggedRoute.js +8 -8
- package/dist/devportal/components/FormField.d.ts.map +1 -1
- package/dist/devportal/components/FormField.js +26 -32
- package/dist/devportal/components/FormField.js.map +1 -1
- package/dist/devportal/components/GrantDelegationModal.js +64 -64
- package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
- package/dist/devportal/components/LoadingState.d.ts.map +1 -1
- package/dist/devportal/components/LoadingState.js +5 -8
- package/dist/devportal/components/LoadingState.js.map +1 -1
- package/dist/devportal/components/PageLayout.d.ts.map +1 -1
- package/dist/devportal/components/PageLayout.js +10 -13
- package/dist/devportal/components/PageLayout.js.map +1 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
- package/dist/devportal/components/PermissionGuard.js +11 -14
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/components/SecretDisplay.d.ts.map +1 -1
- package/dist/devportal/components/SecretDisplay.js +24 -30
- package/dist/devportal/components/SecretDisplay.js.map +1 -1
- package/dist/devportal/components/SectionNav.d.ts.map +1 -1
- package/dist/devportal/components/SectionNav.js +24 -27
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/StatusBadge.d.ts.map +1 -1
- package/dist/devportal/components/StatusBadge.js +24 -33
- package/dist/devportal/components/StatusBadge.js.map +1 -1
- package/dist/devportal/index.d.ts +1 -0
- package/dist/devportal/index.d.ts.map +1 -1
- package/dist/devportal/index.js +1 -0
- package/dist/devportal/pages/AdminReviewPage.js +172 -172
- package/dist/devportal/pages/AnalyticsDashboardPage.js +43 -43
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +119 -119
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +45 -45
- package/dist/devportal/pages/ApplicationDetailPage.js +607 -607
- package/dist/devportal/pages/ApplicationVersionsPage.js +13 -13
- package/dist/devportal/pages/ApplicationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +104 -101
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +45 -45
- package/dist/devportal/pages/CreateApplicationPage.js +38 -38
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +52 -52
- package/dist/devportal/pages/CreateOrganizationPage.js +26 -26
- package/dist/devportal/pages/CreateWebhookPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +48 -48
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +66 -72
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +174 -174
- package/dist/devportal/pages/DocumentationPage.js +93 -93
- package/dist/devportal/pages/EditApplicationPage.js +14 -14
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js +75 -75
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +64 -64
- package/dist/devportal/pages/OrganizationDetailPage.js +189 -189
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +10 -10
- package/dist/devportal/pages/OrganizationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.js +163 -154
- package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +104 -104
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.js +55 -55
- package/dist/devportal/pages/ResourcesPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +83 -83
- package/dist/devportal/pages/SellerItemsPage.js +163 -163
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SellerOrdersPage.js +63 -63
- package/dist/devportal/pages/SettingsPage.js +21 -21
- package/dist/devportal/pages/SetupPage.js +183 -183
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +5 -5
- package/dist/devportal/pages/WebhookDetailPage.js +123 -123
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +118 -118
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/i18n.d.ts +9 -2
- package/dist/devportal/utils/i18n.d.ts.map +1 -1
- package/dist/devportal/utils/i18n.js +13 -10
- package/dist/devportal/utils/i18n.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/translations/en.d.ts +1251 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +1235 -0
- package/dist/translations/en.js.map +1 -0
- package/package.json +1 -1
|
@@ -9,18 +9,18 @@ import { useDevportalPermission as p } from "../hooks/usePermission.js";
|
|
|
9
9
|
import "../hooks/index.js";
|
|
10
10
|
import { DEVPORTAL_PERMISSIONS as m } from "../constants/permissions.js";
|
|
11
11
|
import { useState as h } from "react";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { AlertCircle as g, CheckCircle as _, ChevronDown as v, ChevronUp as y, Clock as b, Download as x, Eye as S, FileJson as C, GitBranch as w, Loader2 as T, Package as E, Search as D, XCircle as O } from "lucide-react";
|
|
13
|
+
import { jsx as k, jsxs as A } from "react/jsx-runtime";
|
|
14
|
+
import { useI18n as j } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
15
15
|
//#region src/devportal/pages/AdminReviewPage.tsx
|
|
16
16
|
var M = ({ manifest: e, tr: t }) => {
|
|
17
17
|
let [n, r] = h(!1);
|
|
18
|
-
return /* @__PURE__ */
|
|
18
|
+
return /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("button", {
|
|
19
19
|
type: "button",
|
|
20
20
|
onClick: () => r((e) => !e),
|
|
21
21
|
className: "inline-flex items-center gap-1.5 text-xs text-text-secondary hover:text-text-primary",
|
|
22
|
-
children: [/* @__PURE__ */
|
|
23
|
-
}), n && /* @__PURE__ */
|
|
22
|
+
children: [/* @__PURE__ */ k(C, { size: 13 }), n ? t("devportal.hideManifest", "Hide manifest") : t("devportal.viewManifest", "View manifest.json")]
|
|
23
|
+
}), n && /* @__PURE__ */ k("pre", {
|
|
24
24
|
className: "mt-2 max-h-48 overflow-auto rounded-md bg-bg-sunken p-3 text-xs font-mono whitespace-pre-wrap break-all",
|
|
25
25
|
children: JSON.stringify(e, null, 2)
|
|
26
26
|
})] });
|
|
@@ -29,26 +29,26 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
29
29
|
WORKFLOW: "Workflow bundle"
|
|
30
30
|
}, P = ({ appType: e, packageUrl: t, packageSize: n, tr: r }) => {
|
|
31
31
|
let i = N[e];
|
|
32
|
-
return i ? /* @__PURE__ */
|
|
32
|
+
return i ? /* @__PURE__ */ A("div", {
|
|
33
33
|
className: "rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-3 space-y-2",
|
|
34
|
-
children: [/* @__PURE__ */
|
|
34
|
+
children: [/* @__PURE__ */ A("div", {
|
|
35
35
|
className: "flex items-center gap-2 text-xs font-medium text-status-warning-text",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
36
|
+
children: [/* @__PURE__ */ k(E, {
|
|
37
37
|
size: 13,
|
|
38
38
|
className: "flex-shrink-0"
|
|
39
39
|
}), r("devportal.zipVerificationRequired", "ZIP verification required — download and test before approving")]
|
|
40
|
-
}), t ? /* @__PURE__ */
|
|
40
|
+
}), t ? /* @__PURE__ */ A("a", {
|
|
41
41
|
href: t,
|
|
42
42
|
download: !0,
|
|
43
43
|
target: "_blank",
|
|
44
44
|
rel: "noopener noreferrer",
|
|
45
45
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
|
|
46
46
|
children: [
|
|
47
|
-
/* @__PURE__ */
|
|
47
|
+
/* @__PURE__ */ k(x, { size: 14 }),
|
|
48
48
|
r("devportal.download", "Download"),
|
|
49
49
|
" ",
|
|
50
50
|
i,
|
|
51
|
-
n && /* @__PURE__ */
|
|
51
|
+
n && /* @__PURE__ */ A("span", {
|
|
52
52
|
className: "opacity-70 text-xs",
|
|
53
53
|
children: [
|
|
54
54
|
"(",
|
|
@@ -57,61 +57,61 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
57
57
|
]
|
|
58
58
|
})
|
|
59
59
|
]
|
|
60
|
-
}) : /* @__PURE__ */
|
|
60
|
+
}) : /* @__PURE__ */ A("p", {
|
|
61
61
|
className: "text-xs text-status-error-text flex items-center gap-1.5",
|
|
62
|
-
children: [/* @__PURE__ */
|
|
62
|
+
children: [/* @__PURE__ */ k(g, { size: 12 }), r("devportal.noZipUploaded", "No ZIP uploaded — developer must upload before this can be approved")]
|
|
63
63
|
})]
|
|
64
64
|
}) : null;
|
|
65
65
|
}, F = ({ app: t, onApprove: n, onReject: r, processing: a, hasPendingVersions: o }) => {
|
|
66
|
-
let { navigate: s, basePath: c } = e(), { t: l } =
|
|
66
|
+
let { navigate: s, basePath: c } = e(), { t: l } = j(), u = (e, t) => {
|
|
67
67
|
let n = l(e);
|
|
68
68
|
return n === e ? t : n;
|
|
69
|
-
}, [d, f] = h(!1), [
|
|
69
|
+
}, [d, f] = h(!1), [g, b] = h(""), C = p(m.APP_APPROVE), E = p(m.APP_REJECT), { data: D } = i({
|
|
70
70
|
variables: { id: t.id },
|
|
71
71
|
skip: !d,
|
|
72
72
|
fetchPolicy: "cache-first"
|
|
73
|
-
}), F =
|
|
74
|
-
return /* @__PURE__ */
|
|
73
|
+
}), F = D?.application?.versions?.edges?.[0]?.node;
|
|
74
|
+
return /* @__PURE__ */ A("div", {
|
|
75
75
|
className: "rounded-card border border-border-seam bg-bg-surface overflow-hidden",
|
|
76
|
-
children: [/* @__PURE__ */
|
|
76
|
+
children: [/* @__PURE__ */ A("div", {
|
|
77
77
|
className: "flex items-center gap-4 p-4",
|
|
78
78
|
children: [
|
|
79
|
-
t.iconUrl ? /* @__PURE__ */
|
|
79
|
+
t.iconUrl ? /* @__PURE__ */ k("img", {
|
|
80
80
|
src: t.iconUrl,
|
|
81
81
|
alt: t.name,
|
|
82
82
|
className: "h-12 w-12 rounded-lg object-cover flex-shrink-0"
|
|
83
|
-
}) : /* @__PURE__ */
|
|
83
|
+
}) : /* @__PURE__ */ k("div", {
|
|
84
84
|
className: "h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
|
|
85
|
-
children: /* @__PURE__ */
|
|
85
|
+
children: /* @__PURE__ */ k("span", {
|
|
86
86
|
className: "text-lg font-bold text-text-secondary",
|
|
87
87
|
children: t.name.charAt(0).toUpperCase()
|
|
88
88
|
})
|
|
89
89
|
}),
|
|
90
|
-
/* @__PURE__ */
|
|
90
|
+
/* @__PURE__ */ A("div", {
|
|
91
91
|
className: "flex-1 min-w-0",
|
|
92
92
|
children: [
|
|
93
|
-
/* @__PURE__ */
|
|
93
|
+
/* @__PURE__ */ A("div", {
|
|
94
94
|
className: "flex items-center gap-2",
|
|
95
95
|
children: [
|
|
96
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ k("h3", {
|
|
97
97
|
className: "font-semibold truncate",
|
|
98
98
|
children: t.name
|
|
99
99
|
}),
|
|
100
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ k("span", {
|
|
101
101
|
className: "inline-flex items-center rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text",
|
|
102
102
|
children: t.status
|
|
103
103
|
}),
|
|
104
|
-
/* @__PURE__ */
|
|
104
|
+
/* @__PURE__ */ k("span", {
|
|
105
105
|
className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
|
|
106
106
|
children: t.appType.replace(/_/g, " ")
|
|
107
107
|
})
|
|
108
108
|
]
|
|
109
109
|
}),
|
|
110
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ k("p", {
|
|
111
111
|
className: "text-sm text-text-secondary truncate",
|
|
112
112
|
children: t.shortDescription ?? t.description ?? u("devportal.noDescription", "No description")
|
|
113
113
|
}),
|
|
114
|
-
/* @__PURE__ */
|
|
114
|
+
/* @__PURE__ */ A("p", {
|
|
115
115
|
className: "text-xs text-text-secondary mt-0.5",
|
|
116
116
|
children: [
|
|
117
117
|
u("devportal.submitted", "Submitted"),
|
|
@@ -126,130 +126,130 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
126
126
|
})
|
|
127
127
|
]
|
|
128
128
|
}),
|
|
129
|
-
/* @__PURE__ */
|
|
129
|
+
/* @__PURE__ */ A("div", {
|
|
130
130
|
className: "flex items-center gap-2 flex-shrink-0",
|
|
131
|
-
children: [/* @__PURE__ */
|
|
131
|
+
children: [/* @__PURE__ */ A("button", {
|
|
132
132
|
onClick: () => s?.(`${c}/apps/${t.id}`),
|
|
133
133
|
className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
134
134
|
title: u("devportal.viewAppDetails", "View app details"),
|
|
135
|
-
children: [/* @__PURE__ */
|
|
136
|
-
}), /* @__PURE__ */
|
|
135
|
+
children: [/* @__PURE__ */ k(S, { size: 14 }), u("devportal.view", "View")]
|
|
136
|
+
}), /* @__PURE__ */ A("button", {
|
|
137
137
|
onClick: () => f((e) => !e),
|
|
138
138
|
className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
139
|
-
children: [
|
|
139
|
+
children: [k(d ? y : v, { size: 14 }), u("devportal.review", "Review")]
|
|
140
140
|
})]
|
|
141
141
|
})
|
|
142
142
|
]
|
|
143
|
-
}), d && /* @__PURE__ */
|
|
143
|
+
}), d && /* @__PURE__ */ A("div", {
|
|
144
144
|
className: "border-t bg-bg-sunken/30 p-4 space-y-4",
|
|
145
145
|
children: [
|
|
146
|
-
o && /* @__PURE__ */
|
|
146
|
+
o && /* @__PURE__ */ A("div", {
|
|
147
147
|
className: "flex items-start gap-2 rounded-md border border-status-warning-bg bg-status-warning-bg-subtle px-3 py-2.5 text-xs text-status-warning-text",
|
|
148
|
-
children: [/* @__PURE__ */
|
|
148
|
+
children: [/* @__PURE__ */ k(w, {
|
|
149
149
|
size: 14,
|
|
150
150
|
className: "mt-0.5 shrink-0",
|
|
151
151
|
"aria-hidden": "true"
|
|
152
|
-
}), /* @__PURE__ */
|
|
152
|
+
}), /* @__PURE__ */ A("span", { children: [
|
|
153
153
|
"This app has a pending version. Approve the version in the",
|
|
154
154
|
" ",
|
|
155
|
-
/* @__PURE__ */
|
|
155
|
+
/* @__PURE__ */ k("strong", { children: "Version Updates" }),
|
|
156
156
|
" section below before approving the app — the version must be live before the app can go public."
|
|
157
157
|
] })]
|
|
158
158
|
}),
|
|
159
|
-
t.reviewNotes && /* @__PURE__ */
|
|
159
|
+
t.reviewNotes && /* @__PURE__ */ A("div", {
|
|
160
160
|
className: "rounded-md border bg-bg-surface p-3",
|
|
161
|
-
children: [/* @__PURE__ */
|
|
161
|
+
children: [/* @__PURE__ */ k("p", {
|
|
162
162
|
className: "text-xs font-medium text-text-secondary mb-1",
|
|
163
163
|
children: u("devportal.developerNotes", "Developer Notes")
|
|
164
|
-
}), /* @__PURE__ */
|
|
164
|
+
}), /* @__PURE__ */ k("p", {
|
|
165
165
|
className: "text-sm",
|
|
166
166
|
children: t.reviewNotes
|
|
167
167
|
})]
|
|
168
168
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ A("div", {
|
|
170
170
|
className: "grid grid-cols-2 gap-3 text-sm",
|
|
171
171
|
children: [
|
|
172
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
|
|
173
173
|
className: "text-text-secondary",
|
|
174
174
|
children: [
|
|
175
175
|
u("devportal.category", "Category"),
|
|
176
176
|
":",
|
|
177
177
|
" "
|
|
178
178
|
]
|
|
179
|
-
}), /* @__PURE__ */
|
|
180
|
-
/* @__PURE__ */
|
|
179
|
+
}), /* @__PURE__ */ k("span", { children: t.category ?? "—" })] }),
|
|
180
|
+
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
|
|
181
181
|
className: "text-text-secondary",
|
|
182
182
|
children: [
|
|
183
183
|
u("devportal.pricing", "Pricing"),
|
|
184
184
|
":",
|
|
185
185
|
" "
|
|
186
186
|
]
|
|
187
|
-
}), /* @__PURE__ */
|
|
188
|
-
/* @__PURE__ */
|
|
187
|
+
}), /* @__PURE__ */ k("span", { children: t.pricingType ?? "FREE" })] }),
|
|
188
|
+
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
|
|
189
189
|
className: "text-text-secondary",
|
|
190
190
|
children: [
|
|
191
191
|
u("devportal.website", "Website"),
|
|
192
192
|
":",
|
|
193
193
|
" "
|
|
194
194
|
]
|
|
195
|
-
}), t.websiteUrl ? /* @__PURE__ */
|
|
195
|
+
}), t.websiteUrl ? /* @__PURE__ */ k("a", {
|
|
196
196
|
href: t.websiteUrl,
|
|
197
197
|
target: "_blank",
|
|
198
198
|
rel: "noopener noreferrer",
|
|
199
199
|
className: "text-primary underline hover:no-underline",
|
|
200
200
|
children: u("devportal.link", "Link")
|
|
201
|
-
}) : /* @__PURE__ */
|
|
202
|
-
/* @__PURE__ */
|
|
201
|
+
}) : /* @__PURE__ */ k("span", { children: "—" })] }),
|
|
202
|
+
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
|
|
203
203
|
className: "text-text-secondary",
|
|
204
204
|
children: [
|
|
205
205
|
u("devportal.privacyPolicy", "Privacy Policy"),
|
|
206
206
|
":",
|
|
207
207
|
" "
|
|
208
208
|
]
|
|
209
|
-
}), t.privacyPolicyUrl ? /* @__PURE__ */
|
|
209
|
+
}), t.privacyPolicyUrl ? /* @__PURE__ */ k("a", {
|
|
210
210
|
href: t.privacyPolicyUrl,
|
|
211
211
|
target: "_blank",
|
|
212
212
|
rel: "noopener noreferrer",
|
|
213
213
|
className: "text-primary underline hover:no-underline",
|
|
214
214
|
children: u("devportal.link", "Link")
|
|
215
|
-
}) : /* @__PURE__ */
|
|
215
|
+
}) : /* @__PURE__ */ k("span", {
|
|
216
216
|
className: "text-status-error-text",
|
|
217
217
|
children: u("devportal.missing", "Missing")
|
|
218
218
|
})] })
|
|
219
219
|
]
|
|
220
220
|
}),
|
|
221
|
-
F && /* @__PURE__ */
|
|
221
|
+
F && /* @__PURE__ */ A("div", {
|
|
222
222
|
className: "rounded-md border bg-bg-surface p-3 space-y-3",
|
|
223
223
|
children: [
|
|
224
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ A("p", {
|
|
225
225
|
className: "text-xs font-medium text-text-secondary",
|
|
226
226
|
children: [
|
|
227
227
|
u("devportal.latestVersion", "Latest Version"),
|
|
228
228
|
":",
|
|
229
229
|
" ",
|
|
230
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ k("span", {
|
|
231
231
|
className: "font-mono text-text-primary",
|
|
232
232
|
children: F.version
|
|
233
233
|
})
|
|
234
234
|
]
|
|
235
235
|
}),
|
|
236
|
-
N[t.appType] ? /* @__PURE__ */
|
|
236
|
+
N[t.appType] ? /* @__PURE__ */ k(P, {
|
|
237
237
|
appType: t.appType,
|
|
238
238
|
packageUrl: F.packageUrl,
|
|
239
239
|
packageSize: F.packageSize,
|
|
240
240
|
tr: u
|
|
241
|
-
}) : F.packageUrl && /* @__PURE__ */
|
|
241
|
+
}) : F.packageUrl && /* @__PURE__ */ k("div", {
|
|
242
242
|
className: "flex flex-wrap gap-2",
|
|
243
|
-
children: /* @__PURE__ */
|
|
243
|
+
children: /* @__PURE__ */ A("a", {
|
|
244
244
|
href: F.packageUrl,
|
|
245
245
|
download: !0,
|
|
246
246
|
target: "_blank",
|
|
247
247
|
rel: "noopener noreferrer",
|
|
248
248
|
className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
249
249
|
children: [
|
|
250
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ k(x, { size: 14 }),
|
|
251
251
|
u("devportal.downloadPackage", "Download Package"),
|
|
252
|
-
F.packageSize && /* @__PURE__ */
|
|
252
|
+
F.packageSize && /* @__PURE__ */ A("span", {
|
|
253
253
|
className: "text-text-secondary text-xs ml-1",
|
|
254
254
|
children: [
|
|
255
255
|
"(",
|
|
@@ -260,49 +260,49 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
260
260
|
]
|
|
261
261
|
})
|
|
262
262
|
}),
|
|
263
|
-
F.manifest && /* @__PURE__ */
|
|
263
|
+
F.manifest && /* @__PURE__ */ k(M, {
|
|
264
264
|
manifest: F.manifest,
|
|
265
265
|
tr: u
|
|
266
266
|
})
|
|
267
267
|
]
|
|
268
268
|
}),
|
|
269
|
-
/* @__PURE__ */
|
|
269
|
+
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
|
|
270
270
|
className: "text-sm font-medium",
|
|
271
271
|
children: u("devportal.reviewNotes", "Review Notes")
|
|
272
|
-
}), /* @__PURE__ */
|
|
273
|
-
value:
|
|
274
|
-
onChange: (e) =>
|
|
272
|
+
}), /* @__PURE__ */ k("textarea", {
|
|
273
|
+
value: g,
|
|
274
|
+
onChange: (e) => b(e.target.value),
|
|
275
275
|
placeholder: u("devportal.reviewNotesPlaceholder", "Add feedback for the developer (required for rejection)..."),
|
|
276
276
|
rows: 3,
|
|
277
277
|
className: "mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none"
|
|
278
278
|
})] }),
|
|
279
|
-
/* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ A("div", {
|
|
280
280
|
className: "flex gap-3",
|
|
281
|
-
children: [/* @__PURE__ */
|
|
282
|
-
onClick: () => n(t.id,
|
|
283
|
-
disabled: a || !
|
|
284
|
-
"aria-disabled": a || !
|
|
285
|
-
title:
|
|
281
|
+
children: [/* @__PURE__ */ A("button", {
|
|
282
|
+
onClick: () => n(t.id, g),
|
|
283
|
+
disabled: a || !C.allowed,
|
|
284
|
+
"aria-disabled": a || !C.allowed,
|
|
285
|
+
title: C.allowed ? void 0 : u("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
286
286
|
className: "inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
287
|
-
children: [a ? /* @__PURE__ */
|
|
287
|
+
children: [a ? /* @__PURE__ */ k(T, {
|
|
288
288
|
size: 14,
|
|
289
289
|
className: "animate-spin",
|
|
290
290
|
"aria-hidden": "true"
|
|
291
|
-
}) : /* @__PURE__ */
|
|
291
|
+
}) : /* @__PURE__ */ k(_, {
|
|
292
292
|
size: 14,
|
|
293
293
|
"aria-hidden": "true"
|
|
294
294
|
}), u("devportal.approve", "Approve")]
|
|
295
|
-
}), /* @__PURE__ */
|
|
296
|
-
onClick: () => r(t.id,
|
|
297
|
-
disabled: a || !
|
|
298
|
-
"aria-disabled": a || !
|
|
295
|
+
}), /* @__PURE__ */ A("button", {
|
|
296
|
+
onClick: () => r(t.id, g),
|
|
297
|
+
disabled: a || !g.trim() || !E.allowed,
|
|
298
|
+
"aria-disabled": a || !g.trim() || !E.allowed,
|
|
299
299
|
className: "inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
300
|
-
title:
|
|
301
|
-
children: [a ? /* @__PURE__ */
|
|
300
|
+
title: E.allowed ? g.trim() ? void 0 : u("devportal.notesRequiredForRejection", "Notes required for rejection") : u("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
301
|
+
children: [a ? /* @__PURE__ */ k(T, {
|
|
302
302
|
size: 14,
|
|
303
303
|
className: "animate-spin",
|
|
304
304
|
"aria-hidden": "true"
|
|
305
|
-
}) : /* @__PURE__ */
|
|
305
|
+
}) : /* @__PURE__ */ k(O, {
|
|
306
306
|
size: 14,
|
|
307
307
|
"aria-hidden": "true"
|
|
308
308
|
}), u("devportal.reject", "Reject")]
|
|
@@ -312,34 +312,34 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
312
312
|
})]
|
|
313
313
|
});
|
|
314
314
|
}, I = ({ app: t, onApproveVersion: n, onRejectVersion: r, processingVersionIds: i }) => {
|
|
315
|
-
let { navigate: a, basePath: o } = e(), { t: s } =
|
|
315
|
+
let { navigate: a, basePath: o } = e(), { t: s } = j(), c = (e, t) => {
|
|
316
316
|
let n = s(e);
|
|
317
317
|
return n === e ? t : n;
|
|
318
318
|
}, [l, u] = h(!1), d = t.versions.edges.map((e) => e.node).filter((e) => e.status === "pending_review");
|
|
319
|
-
return d.length === 0 ? null : /* @__PURE__ */
|
|
319
|
+
return d.length === 0 ? null : /* @__PURE__ */ A("div", {
|
|
320
320
|
className: "rounded-card border border-border-seam bg-bg-surface overflow-hidden",
|
|
321
|
-
children: [/* @__PURE__ */
|
|
321
|
+
children: [/* @__PURE__ */ A("div", {
|
|
322
322
|
className: "flex items-center gap-4 p-4",
|
|
323
323
|
children: [
|
|
324
|
-
t.iconUrl ? /* @__PURE__ */
|
|
324
|
+
t.iconUrl ? /* @__PURE__ */ k("img", {
|
|
325
325
|
src: t.iconUrl,
|
|
326
326
|
alt: t.name,
|
|
327
327
|
className: "h-12 w-12 rounded-lg object-cover flex-shrink-0"
|
|
328
|
-
}) : /* @__PURE__ */
|
|
328
|
+
}) : /* @__PURE__ */ k("div", {
|
|
329
329
|
className: "h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
|
|
330
|
-
children: /* @__PURE__ */
|
|
330
|
+
children: /* @__PURE__ */ k("span", {
|
|
331
331
|
className: "text-lg font-bold text-text-secondary",
|
|
332
332
|
children: t.name.charAt(0).toUpperCase()
|
|
333
333
|
})
|
|
334
334
|
}),
|
|
335
|
-
/* @__PURE__ */
|
|
335
|
+
/* @__PURE__ */ A("div", {
|
|
336
336
|
className: "flex-1 min-w-0",
|
|
337
|
-
children: [/* @__PURE__ */
|
|
337
|
+
children: [/* @__PURE__ */ A("div", {
|
|
338
338
|
className: "flex items-center gap-2",
|
|
339
|
-
children: [/* @__PURE__ */
|
|
339
|
+
children: [/* @__PURE__ */ k("h3", {
|
|
340
340
|
className: "font-semibold truncate",
|
|
341
341
|
children: t.name
|
|
342
|
-
}), /* @__PURE__ */
|
|
342
|
+
}), /* @__PURE__ */ A("span", {
|
|
343
343
|
className: "inline-flex items-center rounded-full bg-status-info-bg-subtle px-2 py-0.5 text-xs font-medium text-status-info-text",
|
|
344
344
|
children: [
|
|
345
345
|
d.length,
|
|
@@ -348,27 +348,27 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
348
348
|
" pending"
|
|
349
349
|
]
|
|
350
350
|
})]
|
|
351
|
-
}), /* @__PURE__ */
|
|
351
|
+
}), /* @__PURE__ */ k("p", {
|
|
352
352
|
className: "text-sm text-text-secondary truncate",
|
|
353
353
|
children: t.shortDescription ?? t.description ?? c("devportal.noDescription", "No description")
|
|
354
354
|
})]
|
|
355
355
|
}),
|
|
356
|
-
/* @__PURE__ */
|
|
356
|
+
/* @__PURE__ */ A("div", {
|
|
357
357
|
className: "flex items-center gap-2 flex-shrink-0",
|
|
358
|
-
children: [/* @__PURE__ */
|
|
358
|
+
children: [/* @__PURE__ */ A("button", {
|
|
359
359
|
onClick: () => a?.(`${o}/apps/${t.id}`),
|
|
360
360
|
className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
361
|
-
children: [/* @__PURE__ */
|
|
362
|
-
}), /* @__PURE__ */
|
|
361
|
+
children: [/* @__PURE__ */ k(S, { size: 14 }), c("devportal.view", "View")]
|
|
362
|
+
}), /* @__PURE__ */ A("button", {
|
|
363
363
|
onClick: () => u((e) => !e),
|
|
364
364
|
className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
365
|
-
children: [
|
|
365
|
+
children: [k(l ? y : v, { size: 14 }), c("devportal.review", "Review")]
|
|
366
366
|
})]
|
|
367
367
|
})
|
|
368
368
|
]
|
|
369
|
-
}), l && /* @__PURE__ */
|
|
369
|
+
}), l && /* @__PURE__ */ k("div", {
|
|
370
370
|
className: "border-t bg-bg-sunken/30 p-4 space-y-4",
|
|
371
|
-
children: d.map((e) => /* @__PURE__ */
|
|
371
|
+
children: d.map((e) => /* @__PURE__ */ k(L, {
|
|
372
372
|
version: e,
|
|
373
373
|
appId: t.id,
|
|
374
374
|
appType: t.appType,
|
|
@@ -381,25 +381,25 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
381
381
|
});
|
|
382
382
|
}, L = ({ version: e, appId: t, appType: n, onApprove: r, onReject: i, processing: a, tr: o }) => {
|
|
383
383
|
let [s, c] = h(""), l = p(m.APP_APPROVE), u = p(m.APP_REJECT);
|
|
384
|
-
return /* @__PURE__ */
|
|
384
|
+
return /* @__PURE__ */ A("div", {
|
|
385
385
|
className: "rounded-md border bg-bg-surface p-4 space-y-3",
|
|
386
386
|
children: [
|
|
387
|
-
/* @__PURE__ */
|
|
387
|
+
/* @__PURE__ */ A("div", {
|
|
388
388
|
className: "flex items-center gap-3",
|
|
389
389
|
children: [
|
|
390
|
-
/* @__PURE__ */
|
|
390
|
+
/* @__PURE__ */ k(w, {
|
|
391
391
|
size: 14,
|
|
392
392
|
className: "text-text-secondary flex-shrink-0"
|
|
393
393
|
}),
|
|
394
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ k("span", {
|
|
395
395
|
className: "font-mono font-semibold text-sm",
|
|
396
396
|
children: e.version
|
|
397
397
|
}),
|
|
398
|
-
e.isLatest && /* @__PURE__ */
|
|
398
|
+
e.isLatest && /* @__PURE__ */ k("span", {
|
|
399
399
|
className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
|
|
400
400
|
children: "Latest"
|
|
401
401
|
}),
|
|
402
|
-
/* @__PURE__ */
|
|
402
|
+
/* @__PURE__ */ A("span", {
|
|
403
403
|
className: "text-xs text-text-secondary ml-auto",
|
|
404
404
|
children: [
|
|
405
405
|
o("devportal.submitted", "Submitted"),
|
|
@@ -414,27 +414,27 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
414
414
|
})
|
|
415
415
|
]
|
|
416
416
|
}),
|
|
417
|
-
e.releaseNotes && /* @__PURE__ */
|
|
417
|
+
e.releaseNotes && /* @__PURE__ */ k("p", {
|
|
418
418
|
className: "text-sm text-text-secondary",
|
|
419
419
|
children: e.releaseNotes
|
|
420
420
|
}),
|
|
421
|
-
N[n] ? /* @__PURE__ */
|
|
421
|
+
N[n] ? /* @__PURE__ */ k(P, {
|
|
422
422
|
appType: n,
|
|
423
423
|
packageUrl: e.packageUrl,
|
|
424
424
|
packageSize: e.packageSize,
|
|
425
425
|
tr: o
|
|
426
|
-
}) : e.packageUrl && /* @__PURE__ */
|
|
426
|
+
}) : e.packageUrl && /* @__PURE__ */ k("div", {
|
|
427
427
|
className: "flex flex-wrap gap-2",
|
|
428
|
-
children: /* @__PURE__ */
|
|
428
|
+
children: /* @__PURE__ */ A("a", {
|
|
429
429
|
href: e.packageUrl,
|
|
430
430
|
download: !0,
|
|
431
431
|
target: "_blank",
|
|
432
432
|
rel: "noopener noreferrer",
|
|
433
433
|
className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
434
434
|
children: [
|
|
435
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ k(x, { size: 14 }),
|
|
436
436
|
o("devportal.downloadPackage", "Download Package"),
|
|
437
|
-
e.packageSize && /* @__PURE__ */
|
|
437
|
+
e.packageSize && /* @__PURE__ */ A("span", {
|
|
438
438
|
className: "text-text-secondary text-xs ml-1",
|
|
439
439
|
children: [
|
|
440
440
|
"(",
|
|
@@ -445,52 +445,52 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
445
445
|
]
|
|
446
446
|
})
|
|
447
447
|
}),
|
|
448
|
-
e.manifest && /* @__PURE__ */
|
|
448
|
+
e.manifest && /* @__PURE__ */ k(M, {
|
|
449
449
|
manifest: e.manifest,
|
|
450
450
|
tr: o
|
|
451
451
|
}),
|
|
452
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
|
|
453
453
|
className: "text-sm font-medium",
|
|
454
454
|
children: o("devportal.reviewNotes", "Review Notes")
|
|
455
|
-
}), /* @__PURE__ */
|
|
455
|
+
}), /* @__PURE__ */ k("textarea", {
|
|
456
456
|
value: s,
|
|
457
457
|
onChange: (e) => c(e.target.value),
|
|
458
458
|
placeholder: o("devportal.reviewNotesPlaceholder", "Add feedback for the developer (required for rejection)..."),
|
|
459
459
|
rows: 2,
|
|
460
460
|
className: "mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none"
|
|
461
461
|
})] }),
|
|
462
|
-
/* @__PURE__ */
|
|
462
|
+
/* @__PURE__ */ A("div", {
|
|
463
463
|
className: "flex gap-3",
|
|
464
|
-
children: [/* @__PURE__ */
|
|
464
|
+
children: [/* @__PURE__ */ A("button", {
|
|
465
465
|
onClick: () => r(e.id, t, s),
|
|
466
466
|
disabled: a || !l.allowed,
|
|
467
467
|
"aria-disabled": a || !l.allowed,
|
|
468
468
|
className: "inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
469
|
-
children: [a ? /* @__PURE__ */
|
|
469
|
+
children: [a ? /* @__PURE__ */ k(T, {
|
|
470
470
|
size: 14,
|
|
471
471
|
className: "animate-spin"
|
|
472
|
-
}) : /* @__PURE__ */
|
|
473
|
-
}), /* @__PURE__ */
|
|
472
|
+
}) : /* @__PURE__ */ k(_, { size: 14 }), o("devportal.approveVersion", "Approve Version")]
|
|
473
|
+
}), /* @__PURE__ */ A("button", {
|
|
474
474
|
onClick: () => i(e.id, t, s),
|
|
475
475
|
disabled: a || !s.trim() || !u.allowed,
|
|
476
476
|
"aria-disabled": a || !s.trim() || !u.allowed,
|
|
477
477
|
className: "inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
478
|
-
children: [a ? /* @__PURE__ */
|
|
478
|
+
children: [a ? /* @__PURE__ */ k(T, {
|
|
479
479
|
size: 14,
|
|
480
480
|
className: "animate-spin"
|
|
481
|
-
}) : /* @__PURE__ */
|
|
481
|
+
}) : /* @__PURE__ */ k(O, { size: 14 }), o("devportal.rejectVersion", "Reject Version")]
|
|
482
482
|
})]
|
|
483
483
|
})
|
|
484
484
|
]
|
|
485
485
|
});
|
|
486
486
|
}, R = () => {
|
|
487
|
-
let { t: e } =
|
|
487
|
+
let { t: e } = j(), i = (t, n) => {
|
|
488
488
|
let r = e(t);
|
|
489
489
|
return r === t ? n : r;
|
|
490
|
-
}, [p,
|
|
490
|
+
}, [p, v] = h(""), [y, x] = h(/* @__PURE__ */ new Set()), [S, C] = h(/* @__PURE__ */ new Set()), [E, O] = h(null), [M, N] = h(null), P = (e) => x((t) => new Set(t).add(e)), L = (e) => x((t) => {
|
|
491
491
|
let n = new Set(t);
|
|
492
492
|
return n.delete(e), n;
|
|
493
|
-
}), R = (e) =>
|
|
493
|
+
}), R = (e) => C((t) => new Set(t).add(e)), z = (e) => C((t) => {
|
|
494
494
|
let n = new Set(t);
|
|
495
495
|
return n.delete(e), n;
|
|
496
496
|
}), { data: B, loading: V, error: H, refetch: U } = a({
|
|
@@ -503,7 +503,7 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
503
503
|
variables: { limit: 100 },
|
|
504
504
|
fetchPolicy: "cache-and-network"
|
|
505
505
|
}), [K] = n(), [q] = s(), [J] = r(), [Y] = c(), X = B?.applications?.edges?.map((e) => e.node) ?? [], Z = W?.applicationsWithPendingVersions?.edges?.map((e) => e.node) ?? [], Q = new Set(Z.map((e) => e.id)), $ = p ? X.filter((e) => e.name.toLowerCase().includes(p.toLowerCase()) || (e.shortDescription ?? "").toLowerCase().includes(p.toLowerCase())) : X, ee = async (e, t) => {
|
|
506
|
-
P(e),
|
|
506
|
+
P(e), O(null), N(null);
|
|
507
507
|
try {
|
|
508
508
|
let n = await K({ variables: {
|
|
509
509
|
id: e,
|
|
@@ -512,13 +512,13 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
512
512
|
if (n.error) throw n.error;
|
|
513
513
|
N(i("devportal.applicationApprovedSuccess", "Application approved successfully.")), await U();
|
|
514
514
|
} catch (e) {
|
|
515
|
-
|
|
515
|
+
O(e instanceof Error ? e.message : i("devportal.failedToApproveApplication", "Failed to approve application"));
|
|
516
516
|
} finally {
|
|
517
517
|
L(e);
|
|
518
518
|
}
|
|
519
519
|
}, te = async (e, t) => {
|
|
520
520
|
if (t.trim()) {
|
|
521
|
-
P(e),
|
|
521
|
+
P(e), O(null), N(null);
|
|
522
522
|
try {
|
|
523
523
|
let n = await q({ variables: {
|
|
524
524
|
id: e,
|
|
@@ -527,13 +527,13 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
527
527
|
if (n.error) throw n.error;
|
|
528
528
|
N(i("devportal.applicationRejected", "Application rejected.")), await U();
|
|
529
529
|
} catch (e) {
|
|
530
|
-
|
|
530
|
+
O(e instanceof Error ? e.message : i("devportal.failedToRejectApplication", "Failed to reject application"));
|
|
531
531
|
} finally {
|
|
532
532
|
L(e);
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
535
|
}, ne = async (e, t, n) => {
|
|
536
|
-
R(e),
|
|
536
|
+
R(e), O(null), N(null);
|
|
537
537
|
try {
|
|
538
538
|
let t = await J({ variables: {
|
|
539
539
|
id: e,
|
|
@@ -542,13 +542,13 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
542
542
|
if (t.error) throw t.error;
|
|
543
543
|
N(i("devportal.versionApprovedSuccess", "Version approved and published.")), await G();
|
|
544
544
|
} catch (e) {
|
|
545
|
-
|
|
545
|
+
O(e instanceof Error ? e.message : i("devportal.failedToApproveVersion", "Failed to approve version"));
|
|
546
546
|
} finally {
|
|
547
547
|
z(e);
|
|
548
548
|
}
|
|
549
549
|
}, re = async (e, t, n) => {
|
|
550
550
|
if (n.trim()) {
|
|
551
|
-
R(e),
|
|
551
|
+
R(e), O(null), N(null);
|
|
552
552
|
try {
|
|
553
553
|
let t = await Y({ variables: {
|
|
554
554
|
id: e,
|
|
@@ -557,44 +557,44 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
557
557
|
if (t.error) throw t.error;
|
|
558
558
|
N(i("devportal.versionRejectedSuccess", "Version rejected and returned to draft.")), await G();
|
|
559
559
|
} catch (e) {
|
|
560
|
-
|
|
560
|
+
O(e instanceof Error ? e.message : i("devportal.failedToRejectVersion", "Failed to reject version"));
|
|
561
561
|
} finally {
|
|
562
562
|
z(e);
|
|
563
563
|
}
|
|
564
564
|
}
|
|
565
565
|
};
|
|
566
|
-
return V && !B ? /* @__PURE__ */
|
|
566
|
+
return V && !B ? /* @__PURE__ */ k(u, {
|
|
567
567
|
title: i("devportal.appReviewQueue", "App Review Queue"),
|
|
568
568
|
description: i("devportal.appReviewQueueDescription", "Review submitted applications for approval"),
|
|
569
|
-
children: /* @__PURE__ */
|
|
569
|
+
children: /* @__PURE__ */ k("div", {
|
|
570
570
|
className: "flex items-center justify-center py-12",
|
|
571
|
-
children: /* @__PURE__ */
|
|
571
|
+
children: /* @__PURE__ */ k(T, { className: "h-8 w-8 animate-spin text-text-secondary" })
|
|
572
572
|
})
|
|
573
|
-
}) : H ? /* @__PURE__ */
|
|
573
|
+
}) : H ? /* @__PURE__ */ k(u, {
|
|
574
574
|
title: i("devportal.appReviewQueue", "App Review Queue"),
|
|
575
575
|
description: i("devportal.appReviewQueueDescription", "Review submitted applications for approval"),
|
|
576
|
-
children: /* @__PURE__ */
|
|
576
|
+
children: /* @__PURE__ */ A("div", {
|
|
577
577
|
className: "rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center",
|
|
578
578
|
children: [
|
|
579
|
-
/* @__PURE__ */
|
|
580
|
-
/* @__PURE__ */
|
|
579
|
+
/* @__PURE__ */ k(g, { className: "mx-auto h-8 w-8 text-status-error-text" }),
|
|
580
|
+
/* @__PURE__ */ k("p", {
|
|
581
581
|
className: "mt-2 text-sm text-text-secondary",
|
|
582
582
|
children: l(H)
|
|
583
583
|
}),
|
|
584
|
-
/* @__PURE__ */
|
|
584
|
+
/* @__PURE__ */ k("button", {
|
|
585
585
|
onClick: () => U(),
|
|
586
586
|
className: "mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
|
|
587
587
|
children: i("devportal.retry", "Retry")
|
|
588
588
|
})
|
|
589
589
|
]
|
|
590
590
|
})
|
|
591
|
-
}) : /* @__PURE__ */
|
|
591
|
+
}) : /* @__PURE__ */ k(f, {
|
|
592
592
|
permission: m.REVIEW_MANAGE,
|
|
593
|
-
children: /* @__PURE__ */
|
|
593
|
+
children: /* @__PURE__ */ A(u, {
|
|
594
594
|
title: i("devportal.appReviewQueue", "App Review Queue"),
|
|
595
595
|
description: i("devportal.appReviewQueueFullDescription", "Review submitted applications for approval or rejection"),
|
|
596
596
|
purpose: i("devportal.appReviewQueuePurpose", "The moderation queue for apps developers have submitted to the marketplace. Open each submission to check its listing, permissions, and behaviour against the guidelines, then approve it to go live or reject it with feedback."),
|
|
597
|
-
actions: /* @__PURE__ */
|
|
597
|
+
actions: /* @__PURE__ */ k("button", {
|
|
598
598
|
onClick: () => {
|
|
599
599
|
U(), G();
|
|
600
600
|
},
|
|
@@ -602,15 +602,15 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
602
602
|
children: i("devportal.refresh", "Refresh")
|
|
603
603
|
}),
|
|
604
604
|
children: [
|
|
605
|
-
/* @__PURE__ */
|
|
605
|
+
/* @__PURE__ */ A("div", {
|
|
606
606
|
className: "flex items-center gap-6 rounded-card border border-border-seam bg-bg-surface p-4",
|
|
607
607
|
children: [
|
|
608
|
-
/* @__PURE__ */
|
|
608
|
+
/* @__PURE__ */ A("div", {
|
|
609
609
|
className: "flex items-center gap-2",
|
|
610
|
-
children: [/* @__PURE__ */
|
|
610
|
+
children: [/* @__PURE__ */ k(b, {
|
|
611
611
|
size: 18,
|
|
612
612
|
className: "text-status-warning-text"
|
|
613
|
-
}), /* @__PURE__ */
|
|
613
|
+
}), /* @__PURE__ */ A("span", {
|
|
614
614
|
className: "text-sm font-medium",
|
|
615
615
|
children: [
|
|
616
616
|
X.length,
|
|
@@ -619,12 +619,12 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
619
619
|
]
|
|
620
620
|
})]
|
|
621
621
|
}),
|
|
622
|
-
Z.length > 0 && /* @__PURE__ */
|
|
622
|
+
Z.length > 0 && /* @__PURE__ */ A("div", {
|
|
623
623
|
className: "flex items-center gap-2",
|
|
624
|
-
children: [/* @__PURE__ */
|
|
624
|
+
children: [/* @__PURE__ */ k(w, {
|
|
625
625
|
size: 18,
|
|
626
626
|
className: "text-status-info-text"
|
|
627
|
-
}), /* @__PURE__ */
|
|
627
|
+
}), /* @__PURE__ */ A("span", {
|
|
628
628
|
className: "text-sm font-medium",
|
|
629
629
|
children: [
|
|
630
630
|
Z.length,
|
|
@@ -633,68 +633,68 @@ var M = ({ manifest: e, tr: t }) => {
|
|
|
633
633
|
]
|
|
634
634
|
})]
|
|
635
635
|
}),
|
|
636
|
-
(
|
|
636
|
+
(y.size > 0 || S.size > 0) && /* @__PURE__ */ A("div", {
|
|
637
637
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
638
|
-
children: [/* @__PURE__ */
|
|
638
|
+
children: [/* @__PURE__ */ k(T, {
|
|
639
639
|
size: 14,
|
|
640
640
|
className: "animate-spin"
|
|
641
641
|
}), i("devportal.processing", "Processing...")]
|
|
642
642
|
})
|
|
643
643
|
]
|
|
644
644
|
}),
|
|
645
|
-
M && /* @__PURE__ */
|
|
645
|
+
M && /* @__PURE__ */ A("div", {
|
|
646
646
|
className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text",
|
|
647
|
-
children: [/* @__PURE__ */
|
|
647
|
+
children: [/* @__PURE__ */ k(_, { size: 16 }), M]
|
|
648
648
|
}),
|
|
649
|
-
|
|
649
|
+
E && /* @__PURE__ */ A("div", {
|
|
650
650
|
className: "flex items-center gap-2 rounded-lg border border-status-error-border/50 bg-status-error-bg/10 px-4 py-3 text-sm text-status-error-text",
|
|
651
|
-
children: [/* @__PURE__ */
|
|
651
|
+
children: [/* @__PURE__ */ k(g, { size: 16 }), E]
|
|
652
652
|
}),
|
|
653
|
-
X.length > 0 && /* @__PURE__ */
|
|
653
|
+
X.length > 0 && /* @__PURE__ */ A("div", {
|
|
654
654
|
className: "relative max-w-sm",
|
|
655
|
-
children: [/* @__PURE__ */
|
|
655
|
+
children: [/* @__PURE__ */ k(D, {
|
|
656
656
|
size: 14,
|
|
657
657
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
|
|
658
|
-
}), /* @__PURE__ */
|
|
658
|
+
}), /* @__PURE__ */ k("input", {
|
|
659
659
|
type: "text",
|
|
660
660
|
placeholder: i("devportal.searchSubmittedApps", "Search submitted apps..."),
|
|
661
661
|
value: p,
|
|
662
|
-
onChange: (e) =>
|
|
662
|
+
onChange: (e) => v(e.target.value),
|
|
663
663
|
className: "w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary"
|
|
664
664
|
})]
|
|
665
665
|
}),
|
|
666
|
-
/* @__PURE__ */
|
|
666
|
+
/* @__PURE__ */ k(d, {
|
|
667
667
|
title: i("devportal.newAppSubmissions", "New App Submissions"),
|
|
668
|
-
children: $.length === 0 ? /* @__PURE__ */
|
|
668
|
+
children: $.length === 0 ? /* @__PURE__ */ k(t, {
|
|
669
669
|
illustration: "empty-data",
|
|
670
|
-
icon: /* @__PURE__ */
|
|
670
|
+
icon: /* @__PURE__ */ k(_, { size: 32 }),
|
|
671
671
|
title: i("devportal.noAppsPendingReview", "No apps pending review"),
|
|
672
672
|
description: p ? i("devportal.noAppsMatchSearch", "No apps match your search") : i("devportal.allApplicationsReviewed", "All submitted applications have been reviewed")
|
|
673
|
-
}) : /* @__PURE__ */
|
|
673
|
+
}) : /* @__PURE__ */ k("div", {
|
|
674
674
|
className: "space-y-3",
|
|
675
|
-
children: $.map((e) => /* @__PURE__ */
|
|
675
|
+
children: $.map((e) => /* @__PURE__ */ k(F, {
|
|
676
676
|
app: e,
|
|
677
677
|
onApprove: ee,
|
|
678
678
|
onReject: te,
|
|
679
|
-
processing:
|
|
679
|
+
processing: y.has(e.id),
|
|
680
680
|
hasPendingVersions: Q.has(e.id)
|
|
681
681
|
}, e.id))
|
|
682
682
|
})
|
|
683
683
|
}),
|
|
684
|
-
/* @__PURE__ */
|
|
684
|
+
/* @__PURE__ */ k(d, {
|
|
685
685
|
title: i("devportal.versionUpdates", "Version Updates (Published Apps)"),
|
|
686
|
-
children: Z.length === 0 ? /* @__PURE__ */
|
|
686
|
+
children: Z.length === 0 ? /* @__PURE__ */ k(t, {
|
|
687
687
|
illustration: "empty-data",
|
|
688
|
-
icon: /* @__PURE__ */
|
|
688
|
+
icon: /* @__PURE__ */ k(w, { size: 32 }),
|
|
689
689
|
title: i("devportal.noPendingVersions", "No pending version updates"),
|
|
690
690
|
description: i("devportal.allVersionsReviewed", "All version updates from published apps have been reviewed")
|
|
691
|
-
}) : /* @__PURE__ */
|
|
691
|
+
}) : /* @__PURE__ */ k("div", {
|
|
692
692
|
className: "space-y-3",
|
|
693
|
-
children: Z.map((e) => /* @__PURE__ */
|
|
693
|
+
children: Z.map((e) => /* @__PURE__ */ k(I, {
|
|
694
694
|
app: e,
|
|
695
695
|
onApproveVersion: ne,
|
|
696
696
|
onRejectVersion: re,
|
|
697
|
-
processingVersionIds:
|
|
697
|
+
processingVersionIds: S
|
|
698
698
|
}, e.id))
|
|
699
699
|
})
|
|
700
700
|
})
|