@burdenoff/microfe-devportal 2026.716.2 → 2026.720.1
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/components/PermissionGuard.d.ts +14 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
- package/dist/devportal/components/PermissionGuard.js +16 -13
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/hooks/usePackageUpload.d.ts.map +1 -1
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
- package/dist/devportal/pages/AdminReviewPage.js +9 -9
- package/dist/devportal/pages/ApiKeysPage.js +180 -181
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +3 -3
- package/dist/devportal/pages/ApplicationVersionsPage.js +4 -4
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +4 -4
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +1 -1
- package/dist/devportal/pages/CreateApplicationPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.js +1 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.js +147 -116
- package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +25 -25
- package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +110 -111
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +1 -1
- package/dist/devportal/pages/EditApplicationPage.d.ts.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +4 -4
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.d.ts.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +160 -161
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.d.ts.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js +166 -167
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +121 -122
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +3 -3
- package/dist/devportal/pages/OrganizationMembersPage.js +4 -4
- package/dist/devportal/pages/OrganizationsPage.js +1 -1
- package/dist/devportal/pages/PublishPage.d.ts.map +1 -1
- package/dist/devportal/pages/PublishPage.js +246 -246
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.js +4 -4
- package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.d.ts.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +3 -3
- package/dist/devportal/pages/WebhookDetailPage.js +3 -3
- package/dist/devportal/pages/WebhooksPage.js +129 -129
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/types/index.d.ts.map +1 -1
- package/dist/devportal/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,193 +4,193 @@ import { PageLayout as i, PageSection as a } from "../components/PageLayout.js";
|
|
|
4
4
|
import { Alert as o } from "../components/ConfirmDialog.js";
|
|
5
5
|
import { PermissionGuard as s } from "../components/PermissionGuard.js";
|
|
6
6
|
import "../components/index.js";
|
|
7
|
-
import {
|
|
8
|
-
import { useDevportalPermission as ee } from "../hooks/usePermission.js";
|
|
7
|
+
import { useDevportalPermission as c } from "../hooks/usePermission.js";
|
|
9
8
|
import "../hooks/index.js";
|
|
10
|
-
import {
|
|
9
|
+
import { DEVPORTAL_PERMISSIONS as l } from "../constants/permissions.js";
|
|
10
|
+
import { useEffect as ee, useMemo as u, useState as d } from "react";
|
|
11
11
|
import { useI18n as te } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
12
|
-
import { AlertTriangle as f, ArrowRight as ne, CheckCircle as p, Eye as re, FileText as m, Globe as ie, Image as h, KeyRound as
|
|
13
|
-
import { useParams as
|
|
14
|
-
import { Fragment as
|
|
15
|
-
import { gql as
|
|
16
|
-
import { useQuery as
|
|
12
|
+
import { AlertTriangle as f, ArrowRight as ne, CheckCircle as p, Eye as re, FileText as m, Globe as ie, Image as h, KeyRound as g, Link as _, Loader2 as v, PartyPopper as ae, Send as oe, Shield as se, Webhook as y, XCircle as b } from "lucide-react";
|
|
13
|
+
import { useParams as ce } from "react-router-dom";
|
|
14
|
+
import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
15
|
+
import { gql as w } from "@apollo/client";
|
|
16
|
+
import { useQuery as T } from "@apollo/client/react";
|
|
17
17
|
//#region src/devportal/pages/PublishPage.tsx
|
|
18
|
-
var
|
|
18
|
+
var E = w`
|
|
19
19
|
query PublishPagePublisher {
|
|
20
20
|
myPublisher {
|
|
21
21
|
id
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
`,
|
|
24
|
+
`, le = w`
|
|
25
25
|
query PublishPageProducts($publisherId: String!) {
|
|
26
26
|
products(filter: { publisherId: $publisherId }) {
|
|
27
27
|
id
|
|
28
28
|
productId
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
`,
|
|
31
|
+
`, ue = w`
|
|
32
32
|
query PublishPageWebhooks($applicationId: ID!) {
|
|
33
33
|
webhooks(applicationId: $applicationId) {
|
|
34
34
|
id
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
`,
|
|
37
|
+
`, de = [
|
|
38
38
|
"SUBMITTED",
|
|
39
39
|
"IN_REVIEW",
|
|
40
40
|
"APPROVED",
|
|
41
41
|
"PUBLISHED"
|
|
42
|
-
],
|
|
43
|
-
let { appId:
|
|
44
|
-
let n =
|
|
42
|
+
], D = () => {
|
|
43
|
+
let { appId: w } = ce(), { navigate: D, basePath: O } = e(), { t: fe } = te(), k = (e, t) => {
|
|
44
|
+
let n = fe(e);
|
|
45
45
|
return n === e ? t : n;
|
|
46
|
-
}, [
|
|
47
|
-
variables: { id:
|
|
48
|
-
skip: !
|
|
46
|
+
}, [A, j] = d(!1), [M, N] = d(null), [pe, P] = d(!1), [F, I] = d(""), L = c(l.APP_SUBMIT), { data: R, loading: z, error: B } = t({
|
|
47
|
+
variables: { id: w },
|
|
48
|
+
skip: !w,
|
|
49
49
|
fetchPolicy: "network-only"
|
|
50
|
-
}), [
|
|
51
|
-
variables: { publisherId:
|
|
52
|
-
skip: !
|
|
50
|
+
}), [me] = r(), [he] = n(), { data: ge } = T(E, { fetchPolicy: "cache-first" }), V = ge?.myPublisher?.id ?? null, { data: _e } = T(le, {
|
|
51
|
+
variables: { publisherId: V ?? "" },
|
|
52
|
+
skip: !V,
|
|
53
53
|
fetchPolicy: "cache-first"
|
|
54
54
|
});
|
|
55
|
-
|
|
56
|
-
let
|
|
57
|
-
variables: { applicationId:
|
|
58
|
-
skip: !
|
|
55
|
+
_e?.products?.find((e) => e.productId === w)?.id;
|
|
56
|
+
let H = R?.application?.appType === "API_INTEGRATION", U = R?.application?.manifest?.oauth, W = !!(U?.authorizationUrl && U?.tokenUrl && U?.clientId), { data: ve } = T(ue, {
|
|
57
|
+
variables: { applicationId: w },
|
|
58
|
+
skip: !w || !H,
|
|
59
59
|
fetchPolicy: "network-only"
|
|
60
|
-
}),
|
|
61
|
-
|
|
62
|
-
let e =
|
|
63
|
-
if (!
|
|
60
|
+
}), G = ve?.webhooks?.length ?? 0, K = R?.application;
|
|
61
|
+
ee(() => {
|
|
62
|
+
let e = K?.name;
|
|
63
|
+
if (!w || !e) return;
|
|
64
64
|
let t = window.__breadcrumbRegistry;
|
|
65
|
-
return t?.register(
|
|
66
|
-
}, [
|
|
67
|
-
let
|
|
68
|
-
if (!
|
|
69
|
-
let e =
|
|
65
|
+
return t?.register(w, e), () => t?.unregister(w);
|
|
66
|
+
}, [w, K?.name]);
|
|
67
|
+
let q = de.includes(K?.status ?? ""), J = K?.appType === "NODE" || K?.appType === "WORKFLOW", Y = K?.versions?.totalCount ?? 0, X = u(() => {
|
|
68
|
+
if (!K) return [];
|
|
69
|
+
let e = K.screenshots?.length ?? 0, t = `/apps/${w}?tab=store-listing`, n = `/apps/${w}/versions`, r = `/apps/${w}/edit#oauth-config`, i = `/apps/${w}/webhooks`, a = [
|
|
70
70
|
{
|
|
71
71
|
id: "name",
|
|
72
|
-
label:
|
|
73
|
-
description:
|
|
74
|
-
status:
|
|
75
|
-
icon: /* @__PURE__ */
|
|
72
|
+
label: k("devportal.checklistNameLabel", "Name & Short Description"),
|
|
73
|
+
description: k("devportal.checklistNameDesc", "Name and short description are required for the store card"),
|
|
74
|
+
status: K.name && K.shortDescription ? "passed" : "failed",
|
|
75
|
+
icon: /* @__PURE__ */ S(m, { size: 20 }),
|
|
76
76
|
actionLabel: "Edit store listing →",
|
|
77
77
|
actionPath: t
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
id: "category",
|
|
81
|
-
label:
|
|
82
|
-
description:
|
|
83
|
-
status:
|
|
84
|
-
icon: /* @__PURE__ */
|
|
81
|
+
label: k("devportal.checklistCategoryLabel", "Category"),
|
|
82
|
+
description: k("devportal.checklistCategoryDesc", "A category helps users find your item in the marketplace"),
|
|
83
|
+
status: K.category ? "passed" : "failed",
|
|
84
|
+
icon: /* @__PURE__ */ S(ie, { size: 20 }),
|
|
85
85
|
actionLabel: "Edit app info →",
|
|
86
|
-
actionPath: `/apps/${
|
|
86
|
+
actionPath: `/apps/${w}/edit`
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
id: "privacy",
|
|
90
|
-
label:
|
|
91
|
-
description:
|
|
92
|
-
status:
|
|
93
|
-
icon: /* @__PURE__ */
|
|
90
|
+
label: k("devportal.checklistPrivacyLabel", "Privacy Policy"),
|
|
91
|
+
description: k("devportal.checklistPrivacyDesc", "Privacy policy URL is required for store submission"),
|
|
92
|
+
status: K.privacyPolicyUrl ? "passed" : "failed",
|
|
93
|
+
icon: /* @__PURE__ */ S(se, { size: 20 }),
|
|
94
94
|
actionLabel: "Edit store listing →",
|
|
95
95
|
actionPath: t
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
id: "terms",
|
|
99
|
-
label:
|
|
100
|
-
description:
|
|
101
|
-
status:
|
|
102
|
-
icon: /* @__PURE__ */
|
|
99
|
+
label: k("devportal.checklistTermsLabel", "Terms of Service"),
|
|
100
|
+
description: k("devportal.checklistTermsDesc", "Terms of service URL is required for store submission"),
|
|
101
|
+
status: K.termsOfServiceUrl ? "passed" : "failed",
|
|
102
|
+
icon: /* @__PURE__ */ S(m, { size: 20 }),
|
|
103
103
|
actionLabel: "Edit store listing →",
|
|
104
104
|
actionPath: t
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
107
|
id: "icon",
|
|
108
|
-
label:
|
|
109
|
-
description:
|
|
110
|
-
status:
|
|
111
|
-
icon: /* @__PURE__ */
|
|
108
|
+
label: k("devportal.checklistIconLabel", "App Icon"),
|
|
109
|
+
description: k("devportal.checklistIconDesc", "An icon makes your listing stand out in the marketplace"),
|
|
110
|
+
status: K.iconUrl ? "passed" : "warning",
|
|
111
|
+
icon: /* @__PURE__ */ S(h, { size: 20 }),
|
|
112
112
|
actionLabel: "Edit store listing →",
|
|
113
113
|
actionPath: t
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
id: "screenshots",
|
|
117
|
-
label:
|
|
118
|
-
description:
|
|
117
|
+
label: k("devportal.checklistScreenshotsLabel", "Screenshots"),
|
|
118
|
+
description: k("devportal.checklistScreenshotsDesc", "At least 3 screenshots are recommended"),
|
|
119
119
|
status: e >= 3 ? "passed" : "warning",
|
|
120
|
-
icon: /* @__PURE__ */
|
|
120
|
+
icon: /* @__PURE__ */ S(h, { size: 20 }),
|
|
121
121
|
actionLabel: "Edit store listing →",
|
|
122
122
|
actionPath: t
|
|
123
123
|
}
|
|
124
124
|
];
|
|
125
|
-
return
|
|
125
|
+
return J && a.push({
|
|
126
126
|
id: "version",
|
|
127
|
-
label:
|
|
128
|
-
description:
|
|
129
|
-
status:
|
|
130
|
-
icon: /* @__PURE__ */
|
|
127
|
+
label: k("devportal.checklistVersionLabel", "Published Version"),
|
|
128
|
+
description: k("devportal.checklistVersionDesc", K?.appType === "WORKFLOW" ? "At least one published version (manifest JSON) is required before submitting to the store" : "At least one published version (ZIP + manifest) is required before submitting to the store"),
|
|
129
|
+
status: Y > 0 ? "passed" : "failed",
|
|
130
|
+
icon: /* @__PURE__ */ S(p, { size: 20 }),
|
|
131
131
|
actionLabel: "Create a version →",
|
|
132
132
|
actionPath: n
|
|
133
|
-
}),
|
|
133
|
+
}), K.appType === "API_INTEGRATION" && (a.push({
|
|
134
134
|
id: "oauth",
|
|
135
|
-
label:
|
|
136
|
-
description:
|
|
137
|
-
status:
|
|
138
|
-
icon: /* @__PURE__ */
|
|
135
|
+
label: k("devportal.checklistOAuthLabel", "OAuth Configuration"),
|
|
136
|
+
description: k("devportal.checklistOAuthDesc", "Authorization URL, Token URL and Client ID are required so users can connect their accounts. Without these the Connect button does not work."),
|
|
137
|
+
status: W ? "passed" : "failed",
|
|
138
|
+
icon: /* @__PURE__ */ S(g, { size: 20 }),
|
|
139
139
|
actionLabel: "Configure in Edit App →",
|
|
140
140
|
actionPath: r
|
|
141
141
|
}), a.push({
|
|
142
142
|
id: "webhook",
|
|
143
|
-
label:
|
|
144
|
-
description:
|
|
145
|
-
status:
|
|
146
|
-
icon: /* @__PURE__ */
|
|
143
|
+
label: k("devportal.checklistWebhookLabel", "Webhook Endpoint"),
|
|
144
|
+
description: k("devportal.checklistWebhookDesc", "At least one webhook endpoint must be configured so your server receives platform events after users connect. Without this the integration does nothing."),
|
|
145
|
+
status: G > 0 ? "passed" : "failed",
|
|
146
|
+
icon: /* @__PURE__ */ S(y, { size: 20 }),
|
|
147
147
|
actionLabel: "Add a webhook →",
|
|
148
148
|
actionPath: i
|
|
149
149
|
}), a.push({
|
|
150
150
|
id: "documentation",
|
|
151
|
-
label:
|
|
152
|
-
description:
|
|
153
|
-
status:
|
|
154
|
-
icon: /* @__PURE__ */
|
|
151
|
+
label: k("devportal.checklistDocsLabel", "Documentation URL"),
|
|
152
|
+
description: k("devportal.checklistDocsDesc", "Users need to know how to use and configure this integration. A documentation link is required for API integrations."),
|
|
153
|
+
status: K.documentationUrl ? "passed" : "failed",
|
|
154
|
+
icon: /* @__PURE__ */ S(m, { size: 20 }),
|
|
155
155
|
actionLabel: "Add documentation URL →",
|
|
156
156
|
actionPath: r
|
|
157
157
|
}), a.push({
|
|
158
158
|
id: "website",
|
|
159
|
-
label:
|
|
160
|
-
description:
|
|
161
|
-
status:
|
|
162
|
-
icon: /* @__PURE__ */
|
|
159
|
+
label: k("devportal.checklistWebsiteLabel", "Website URL"),
|
|
160
|
+
description: k("devportal.checklistWebsiteDesc", "Users need to verify who built this integration. A website URL is required so users know where to get support."),
|
|
161
|
+
status: K.websiteUrl ? "passed" : "failed",
|
|
162
|
+
icon: /* @__PURE__ */ S(_, { size: 20 }),
|
|
163
163
|
actionLabel: "Add website URL →",
|
|
164
164
|
actionPath: r
|
|
165
165
|
})), a.push({
|
|
166
166
|
id: "status",
|
|
167
|
-
label:
|
|
168
|
-
description:
|
|
169
|
-
status: ["DRAFT", "REJECTED"].includes(
|
|
170
|
-
icon: /* @__PURE__ */
|
|
167
|
+
label: k("devportal.checklistStatusLabel", "App Status"),
|
|
168
|
+
description: k("devportal.checklistStatusDesc", "App must be in DRAFT or REJECTED state to submit"),
|
|
169
|
+
status: ["DRAFT", "REJECTED"].includes(K.status ?? "") ? "passed" : "warning",
|
|
170
|
+
icon: /* @__PURE__ */ S(p, { size: 20 })
|
|
171
171
|
}), a;
|
|
172
172
|
}, [
|
|
173
|
-
|
|
174
|
-
q,
|
|
173
|
+
K,
|
|
175
174
|
J,
|
|
175
|
+
Y,
|
|
176
|
+
G,
|
|
176
177
|
W,
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
]), X = Y.filter((e) => e.status === "passed").length, Z = Y.filter((e) => e.status === "failed").length, Q = Y.filter((e) => e.status === "warning").length, be = ["DRAFT", "REJECTED"].includes(G?.status ?? ""), $ = !R && !z && Z === 0 && !!G && !K && be, xe = (e) => {
|
|
178
|
+
w
|
|
179
|
+
]), ye = X.filter((e) => e.status === "passed").length, Z = X.filter((e) => e.status === "failed").length, Q = X.filter((e) => e.status === "warning").length, be = ["DRAFT", "REJECTED"].includes(K?.status ?? ""), $ = !z && !B && Z === 0 && !!K && !q && be, xe = (e) => {
|
|
180
180
|
switch (e) {
|
|
181
|
-
case "passed": return /* @__PURE__ */
|
|
181
|
+
case "passed": return /* @__PURE__ */ S(p, {
|
|
182
182
|
size: 20,
|
|
183
183
|
className: "text-status-success-text"
|
|
184
184
|
});
|
|
185
|
-
case "failed": return /* @__PURE__ */
|
|
185
|
+
case "failed": return /* @__PURE__ */ S(b, {
|
|
186
186
|
size: 20,
|
|
187
187
|
className: "text-status-error-text"
|
|
188
188
|
});
|
|
189
|
-
case "warning": return /* @__PURE__ */
|
|
189
|
+
case "warning": return /* @__PURE__ */ S(f, {
|
|
190
190
|
size: 20,
|
|
191
191
|
className: "text-status-warning-text"
|
|
192
192
|
});
|
|
193
|
-
default: return /* @__PURE__ */
|
|
193
|
+
default: return /* @__PURE__ */ S("div", { className: "h-5 w-5 rounded-full border-2 border-border-default" });
|
|
194
194
|
}
|
|
195
195
|
}, Se = (e) => {
|
|
196
196
|
switch (e) {
|
|
@@ -200,63 +200,63 @@ var T = C`
|
|
|
200
200
|
default: return "bg-bg-canvas border-border-subtle";
|
|
201
201
|
}
|
|
202
202
|
};
|
|
203
|
-
return
|
|
204
|
-
title:
|
|
205
|
-
description:
|
|
206
|
-
backLink: `/apps/${
|
|
207
|
-
backLabel:
|
|
208
|
-
children: /* @__PURE__ */
|
|
203
|
+
return z ? /* @__PURE__ */ S(i, {
|
|
204
|
+
title: k("devportal.publishToStoreTitle", "Publish to Store"),
|
|
205
|
+
description: k("devportal.loadingApplicationDetails", "Loading application details..."),
|
|
206
|
+
backLink: `/apps/${w}`,
|
|
207
|
+
backLabel: k("devportal.backToApplication", "Back to Application"),
|
|
208
|
+
children: /* @__PURE__ */ S("div", {
|
|
209
209
|
className: "flex items-center justify-center py-12",
|
|
210
|
-
children: /* @__PURE__ */
|
|
210
|
+
children: /* @__PURE__ */ S(v, { className: "animate-spin h-8 w-8 text-text-secondary" })
|
|
211
211
|
})
|
|
212
|
-
}) :
|
|
213
|
-
title:
|
|
214
|
-
description:
|
|
215
|
-
backLink: `/apps/${
|
|
216
|
-
backLabel:
|
|
217
|
-
children: /* @__PURE__ */
|
|
212
|
+
}) : B || !K ? /* @__PURE__ */ S(i, {
|
|
213
|
+
title: k("devportal.publishToStoreTitle", "Publish to Store"),
|
|
214
|
+
description: k("devportal.couldNotLoadApplication", "Could not load application"),
|
|
215
|
+
backLink: `/apps/${w}`,
|
|
216
|
+
backLabel: k("devportal.backToApplication", "Back to Application"),
|
|
217
|
+
children: /* @__PURE__ */ S(o, {
|
|
218
218
|
variant: "error",
|
|
219
|
-
title:
|
|
220
|
-
children:
|
|
219
|
+
title: k("devportal.failedToLoadApplication", "Failed to load application"),
|
|
220
|
+
children: B?.message ?? k("devportal.applicationNotFound", "Application not found")
|
|
221
221
|
})
|
|
222
|
-
}) :
|
|
223
|
-
permission:
|
|
224
|
-
children: /* @__PURE__ */
|
|
225
|
-
title:
|
|
226
|
-
backLink: `/apps/${
|
|
227
|
-
backLabel:
|
|
228
|
-
children: /* @__PURE__ */
|
|
222
|
+
}) : pe ? /* @__PURE__ */ S(s, {
|
|
223
|
+
permission: l.APP_SUBMIT,
|
|
224
|
+
children: /* @__PURE__ */ S(i, {
|
|
225
|
+
title: k("devportal.publishToStoreTitle", "Publish to Store"),
|
|
226
|
+
backLink: `/apps/${w}`,
|
|
227
|
+
backLabel: k("devportal.backToApplication", "Back to Application"),
|
|
228
|
+
children: /* @__PURE__ */ C("div", {
|
|
229
229
|
className: "flex flex-col items-center justify-center py-16 gap-6 text-center",
|
|
230
230
|
children: [
|
|
231
|
-
/* @__PURE__ */
|
|
231
|
+
/* @__PURE__ */ S("div", {
|
|
232
232
|
className: "rounded-full bg-status-success-bg p-4",
|
|
233
|
-
children: /* @__PURE__ */
|
|
233
|
+
children: /* @__PURE__ */ S(ae, {
|
|
234
234
|
size: 40,
|
|
235
235
|
className: "text-status-success-text"
|
|
236
236
|
})
|
|
237
237
|
}),
|
|
238
|
-
/* @__PURE__ */
|
|
238
|
+
/* @__PURE__ */ C("div", {
|
|
239
239
|
className: "space-y-2",
|
|
240
|
-
children: [/* @__PURE__ */
|
|
240
|
+
children: [/* @__PURE__ */ S("h2", {
|
|
241
241
|
className: "text-2xl font-bold",
|
|
242
|
-
children:
|
|
243
|
-
}), /* @__PURE__ */
|
|
242
|
+
children: k("devportal.submittedSuccessTitle", "Submitted for Review!")
|
|
243
|
+
}), /* @__PURE__ */ S("p", {
|
|
244
244
|
className: "text-muted-foreground max-w-md",
|
|
245
|
-
children:
|
|
245
|
+
children: k("devportal.submittedSuccessMsg", "Your app has been submitted to the marketplace review queue. You'll receive email notifications as the review progresses — typically 3–5 business days.")
|
|
246
246
|
})]
|
|
247
247
|
}),
|
|
248
|
-
/* @__PURE__ */
|
|
248
|
+
/* @__PURE__ */ C("div", {
|
|
249
249
|
className: "rounded-lg border bg-muted/40 px-6 py-4 text-sm text-left space-y-2 max-w-md w-full",
|
|
250
|
-
children: [/* @__PURE__ */
|
|
250
|
+
children: [/* @__PURE__ */ S("p", {
|
|
251
251
|
className: "font-medium",
|
|
252
252
|
children: "What happens next:"
|
|
253
|
-
}), /* @__PURE__ */
|
|
253
|
+
}), /* @__PURE__ */ C("ul", {
|
|
254
254
|
className: "space-y-1 text-muted-foreground list-none",
|
|
255
255
|
children: [
|
|
256
|
-
/* @__PURE__ */
|
|
256
|
+
/* @__PURE__ */ C("li", {
|
|
257
257
|
className: "flex items-start gap-2",
|
|
258
258
|
children: [
|
|
259
|
-
/* @__PURE__ */
|
|
259
|
+
/* @__PURE__ */ S(p, {
|
|
260
260
|
size: 14,
|
|
261
261
|
className: "mt-0.5 text-status-success-text shrink-0"
|
|
262
262
|
}),
|
|
@@ -264,10 +264,10 @@ var T = C`
|
|
|
264
264
|
"Our team reviews your submission"
|
|
265
265
|
]
|
|
266
266
|
}),
|
|
267
|
-
/* @__PURE__ */
|
|
267
|
+
/* @__PURE__ */ C("li", {
|
|
268
268
|
className: "flex items-start gap-2",
|
|
269
269
|
children: [
|
|
270
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ S(p, {
|
|
271
271
|
size: 14,
|
|
272
272
|
className: "mt-0.5 text-status-success-text shrink-0"
|
|
273
273
|
}),
|
|
@@ -275,10 +275,10 @@ var T = C`
|
|
|
275
275
|
"You'll get an email on approval or if changes are needed"
|
|
276
276
|
]
|
|
277
277
|
}),
|
|
278
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ C("li", {
|
|
279
279
|
className: "flex items-start gap-2",
|
|
280
280
|
children: [
|
|
281
|
-
/* @__PURE__ */
|
|
281
|
+
/* @__PURE__ */ S(p, {
|
|
282
282
|
size: 14,
|
|
283
283
|
className: "mt-0.5 text-status-success-text shrink-0"
|
|
284
284
|
}),
|
|
@@ -289,118 +289,118 @@ var T = C`
|
|
|
289
289
|
]
|
|
290
290
|
})]
|
|
291
291
|
}),
|
|
292
|
-
/* @__PURE__ */
|
|
293
|
-
onClick: () =>
|
|
292
|
+
/* @__PURE__ */ S("button", {
|
|
293
|
+
onClick: () => D?.(`${O}/apps/${w}`),
|
|
294
294
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted",
|
|
295
295
|
children: "Back to App"
|
|
296
296
|
})
|
|
297
297
|
]
|
|
298
298
|
})
|
|
299
299
|
})
|
|
300
|
-
}) : /* @__PURE__ */
|
|
301
|
-
permission:
|
|
302
|
-
children: /* @__PURE__ */
|
|
303
|
-
title:
|
|
304
|
-
description: `${
|
|
305
|
-
purpose:
|
|
306
|
-
backLink: `/apps/${
|
|
307
|
-
backLabel:
|
|
308
|
-
actions: /* @__PURE__ */
|
|
309
|
-
onClick: () =>
|
|
300
|
+
}) : /* @__PURE__ */ S(s, {
|
|
301
|
+
permission: l.APP_SUBMIT,
|
|
302
|
+
children: /* @__PURE__ */ C(i, {
|
|
303
|
+
title: k("devportal.publishToStoreTitle", "Publish to Store"),
|
|
304
|
+
description: `${k("devportal.submitAppForReview", "Submit")} "${K.name}" ${k("devportal.forReviewAndPublication", "for review and publication")}`,
|
|
305
|
+
purpose: k("devportal.publishPurpose", "Submitting sends your app to the review team, who check it against the marketplace guidelines before it goes live to users. Make sure the listing, screenshots, and permissions are final — preview the listing first, since changes after approval need another review."),
|
|
306
|
+
backLink: `/apps/${w}`,
|
|
307
|
+
backLabel: k("devportal.backToApplication", "Back to Application"),
|
|
308
|
+
actions: /* @__PURE__ */ C("button", {
|
|
309
|
+
onClick: () => D?.(`${O}/apps/${w}/listing`),
|
|
310
310
|
className: "inline-flex items-center gap-2 rounded-md border px-3 py-2 text-sm font-medium hover:bg-bg-sunken",
|
|
311
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ S(re, { size: 16 }), k("devportal.previewListing", "Preview Listing")]
|
|
312
312
|
}),
|
|
313
313
|
children: [
|
|
314
|
-
|
|
314
|
+
q && /* @__PURE__ */ C(o, {
|
|
315
315
|
variant: "warning",
|
|
316
|
-
title:
|
|
316
|
+
title: k("devportal.alreadySubmittedTitle", "Already Submitted"),
|
|
317
317
|
children: [
|
|
318
|
-
|
|
318
|
+
k("devportal.alreadySubmittedMsg1", "This app is currently in"),
|
|
319
319
|
" ",
|
|
320
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ S("strong", { children: K.status }),
|
|
321
321
|
" ",
|
|
322
|
-
|
|
322
|
+
k("devportal.alreadySubmittedMsg2", "state and cannot be re-submitted until the review process is complete or the app is rejected.")
|
|
323
323
|
]
|
|
324
324
|
}),
|
|
325
|
-
/* @__PURE__ */
|
|
325
|
+
/* @__PURE__ */ C("div", {
|
|
326
326
|
className: "rounded-card border border-border-seam bg-bg-surface p-6",
|
|
327
327
|
children: [
|
|
328
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ S("h2", {
|
|
329
329
|
className: "text-lg font-semibold",
|
|
330
|
-
children:
|
|
330
|
+
children: k("devportal.preSubmissionChecklist", "Pre-submission Checklist")
|
|
331
331
|
}),
|
|
332
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ S("p", {
|
|
333
333
|
className: "mt-1 text-sm text-text-secondary",
|
|
334
|
-
children:
|
|
334
|
+
children: k("devportal.completeAllRequiredItems", "Complete all required items before submitting for review")
|
|
335
335
|
}),
|
|
336
|
-
/* @__PURE__ */
|
|
336
|
+
/* @__PURE__ */ C("div", {
|
|
337
337
|
className: "mt-4 flex gap-6",
|
|
338
338
|
children: [
|
|
339
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ C("div", {
|
|
340
340
|
className: "flex items-center gap-2",
|
|
341
|
-
children: [/* @__PURE__ */
|
|
341
|
+
children: [/* @__PURE__ */ S(p, {
|
|
342
342
|
size: 20,
|
|
343
343
|
className: "text-status-success-text"
|
|
344
|
-
}), /* @__PURE__ */
|
|
345
|
-
|
|
344
|
+
}), /* @__PURE__ */ C("span", { children: [
|
|
345
|
+
ye,
|
|
346
346
|
" ",
|
|
347
|
-
|
|
347
|
+
k("devportal.passed", "Passed")
|
|
348
348
|
] })]
|
|
349
349
|
}),
|
|
350
|
-
/* @__PURE__ */
|
|
350
|
+
/* @__PURE__ */ C("div", {
|
|
351
351
|
className: "flex items-center gap-2",
|
|
352
|
-
children: [/* @__PURE__ */
|
|
352
|
+
children: [/* @__PURE__ */ S(b, {
|
|
353
353
|
size: 20,
|
|
354
354
|
className: "text-status-error-text"
|
|
355
|
-
}), /* @__PURE__ */
|
|
355
|
+
}), /* @__PURE__ */ C("span", { children: [
|
|
356
356
|
Z,
|
|
357
357
|
" ",
|
|
358
|
-
|
|
358
|
+
k("devportal.failed", "Failed")
|
|
359
359
|
] })]
|
|
360
360
|
}),
|
|
361
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ C("div", {
|
|
362
362
|
className: "flex items-center gap-2",
|
|
363
|
-
children: [/* @__PURE__ */
|
|
363
|
+
children: [/* @__PURE__ */ S(f, {
|
|
364
364
|
size: 20,
|
|
365
365
|
className: "text-status-warning-text"
|
|
366
|
-
}), /* @__PURE__ */
|
|
366
|
+
}), /* @__PURE__ */ C("span", { children: [
|
|
367
367
|
Q,
|
|
368
368
|
" ",
|
|
369
|
-
|
|
369
|
+
k("devportal.warnings", "Warnings")
|
|
370
370
|
] })]
|
|
371
371
|
})
|
|
372
372
|
]
|
|
373
373
|
})
|
|
374
374
|
]
|
|
375
375
|
}),
|
|
376
|
-
/* @__PURE__ */
|
|
376
|
+
/* @__PURE__ */ S(a, { children: /* @__PURE__ */ S("div", {
|
|
377
377
|
className: "space-y-3",
|
|
378
|
-
children:
|
|
378
|
+
children: X.map((e) => /* @__PURE__ */ C("div", {
|
|
379
379
|
className: `flex items-center gap-4 rounded-lg border p-4 ${Se(e.status)}`,
|
|
380
380
|
children: [
|
|
381
|
-
/* @__PURE__ */
|
|
381
|
+
/* @__PURE__ */ S("div", {
|
|
382
382
|
className: "rounded-lg bg-bg-surface p-2",
|
|
383
383
|
children: e.icon
|
|
384
384
|
}),
|
|
385
|
-
/* @__PURE__ */
|
|
385
|
+
/* @__PURE__ */ C("div", {
|
|
386
386
|
className: "flex-1",
|
|
387
387
|
children: [
|
|
388
|
-
/* @__PURE__ */
|
|
388
|
+
/* @__PURE__ */ S("p", {
|
|
389
389
|
className: "font-medium",
|
|
390
390
|
children: e.label
|
|
391
391
|
}),
|
|
392
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ S("p", {
|
|
393
393
|
className: "text-sm text-text-secondary",
|
|
394
394
|
children: e.description
|
|
395
395
|
}),
|
|
396
|
-
e.status !== "passed" && e.actionPath && /* @__PURE__ */
|
|
396
|
+
e.status !== "passed" && e.actionPath && /* @__PURE__ */ C("button", {
|
|
397
397
|
type: "button",
|
|
398
|
-
onClick: () =>
|
|
398
|
+
onClick: () => D?.(`${O}${e.actionPath}`),
|
|
399
399
|
className: "mt-1 inline-flex items-center gap-1 text-xs text-primary hover:underline",
|
|
400
400
|
children: [
|
|
401
401
|
e.actionLabel ?? "Fix this",
|
|
402
402
|
" ",
|
|
403
|
-
/* @__PURE__ */
|
|
403
|
+
/* @__PURE__ */ S(ne, { size: 11 })
|
|
404
404
|
]
|
|
405
405
|
})
|
|
406
406
|
]
|
|
@@ -409,55 +409,55 @@ var T = C`
|
|
|
409
409
|
]
|
|
410
410
|
}, e.id))
|
|
411
411
|
}) }),
|
|
412
|
-
!
|
|
413
|
-
title:
|
|
414
|
-
description:
|
|
415
|
-
children: [/* @__PURE__ */
|
|
416
|
-
value:
|
|
417
|
-
onChange: (e) =>
|
|
418
|
-
placeholder:
|
|
412
|
+
!q && /* @__PURE__ */ C(a, {
|
|
413
|
+
title: k("devportal.notesForReviewerTitle", "Notes for Reviewer"),
|
|
414
|
+
description: k("devportal.notesForReviewerDesc", "Optional message to the review team"),
|
|
415
|
+
children: [/* @__PURE__ */ S("textarea", {
|
|
416
|
+
value: F,
|
|
417
|
+
onChange: (e) => I(e.target.value),
|
|
418
|
+
placeholder: k("devportal.notesForReviewerPlaceholder", "Describe what your app does, any special review considerations, or testing instructions..."),
|
|
419
419
|
rows: 4,
|
|
420
420
|
maxLength: 1e3,
|
|
421
421
|
className: "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"
|
|
422
|
-
}), /* @__PURE__ */
|
|
422
|
+
}), /* @__PURE__ */ C("p", {
|
|
423
423
|
className: "mt-1 text-xs text-text-secondary text-right",
|
|
424
|
-
children: [
|
|
424
|
+
children: [F.length, "/1000"]
|
|
425
425
|
})]
|
|
426
426
|
}),
|
|
427
|
-
|
|
427
|
+
M && /* @__PURE__ */ S(o, {
|
|
428
428
|
variant: "error",
|
|
429
|
-
title:
|
|
430
|
-
children:
|
|
429
|
+
title: k("devportal.submissionFailedTitle", "Submission Failed"),
|
|
430
|
+
children: M
|
|
431
431
|
}),
|
|
432
|
-
Z > 0 && !
|
|
432
|
+
Z > 0 && !q && /* @__PURE__ */ C(o, {
|
|
433
433
|
variant: "error",
|
|
434
|
-
title:
|
|
434
|
+
title: k("devportal.cannotSubmitTitle", "Cannot Submit Yet"),
|
|
435
435
|
children: [
|
|
436
|
-
|
|
436
|
+
k("devportal.pleaseFixItems1", "Please fix"),
|
|
437
437
|
" ",
|
|
438
438
|
Z,
|
|
439
439
|
" ",
|
|
440
|
-
|
|
441
|
-
/* @__PURE__ */
|
|
440
|
+
k("devportal.pleaseFixItems2", "required item(s) before submitting for review."),
|
|
441
|
+
/* @__PURE__ */ C("div", {
|
|
442
442
|
className: "mt-2 flex flex-wrap gap-3",
|
|
443
443
|
children: [
|
|
444
|
-
/* @__PURE__ */
|
|
445
|
-
onClick: () =>
|
|
444
|
+
/* @__PURE__ */ S("button", {
|
|
445
|
+
onClick: () => D?.(`${O}/apps/${w}`),
|
|
446
446
|
className: "text-sm underline hover:no-underline",
|
|
447
|
-
children:
|
|
447
|
+
children: k("devportal.goToMarketplaceListing", "Update marketplace listing →")
|
|
448
448
|
}),
|
|
449
|
-
|
|
450
|
-
onClick: () =>
|
|
449
|
+
J && Y === 0 && /* @__PURE__ */ S("button", {
|
|
450
|
+
onClick: () => D?.(`${O}/apps/${w}/versions`),
|
|
451
451
|
className: "text-sm underline hover:no-underline",
|
|
452
|
-
children:
|
|
452
|
+
children: k("devportal.goToVersions", "Add a published version →")
|
|
453
453
|
}),
|
|
454
|
-
|
|
455
|
-
onClick: () =>
|
|
454
|
+
H && !W && /* @__PURE__ */ S("button", {
|
|
455
|
+
onClick: () => D?.(`${O}/apps/${w}/edit#oauth-config`),
|
|
456
456
|
className: "text-sm underline hover:no-underline",
|
|
457
457
|
children: "Configure OAuth endpoints →"
|
|
458
458
|
}),
|
|
459
|
-
|
|
460
|
-
onClick: () =>
|
|
459
|
+
H && G === 0 && /* @__PURE__ */ S("button", {
|
|
460
|
+
onClick: () => D?.(`${O}/apps/${w}/webhooks`),
|
|
461
461
|
className: "text-sm underline hover:no-underline",
|
|
462
462
|
children: "Add a webhook →"
|
|
463
463
|
})
|
|
@@ -465,91 +465,91 @@ var T = C`
|
|
|
465
465
|
})
|
|
466
466
|
]
|
|
467
467
|
}),
|
|
468
|
-
Q > 0 && Z === 0 && !
|
|
468
|
+
Q > 0 && Z === 0 && !q && /* @__PURE__ */ C(o, {
|
|
469
469
|
variant: "warning",
|
|
470
|
-
title:
|
|
470
|
+
title: k("devportal.warningsTitle", "Warnings"),
|
|
471
471
|
children: [
|
|
472
|
-
|
|
472
|
+
k("devportal.warningsMsg1", "You have"),
|
|
473
473
|
" ",
|
|
474
474
|
Q,
|
|
475
475
|
" ",
|
|
476
|
-
|
|
476
|
+
k("devportal.warningsMsg2", "warning(s). While you can submit, addressing these may improve your app's chances of approval.")
|
|
477
477
|
]
|
|
478
478
|
}),
|
|
479
|
-
/* @__PURE__ */
|
|
480
|
-
title:
|
|
481
|
-
children: /* @__PURE__ */
|
|
479
|
+
/* @__PURE__ */ S(a, {
|
|
480
|
+
title: k("devportal.reviewProcessTitle", "Review Process"),
|
|
481
|
+
children: /* @__PURE__ */ S("div", {
|
|
482
482
|
className: "rounded-lg border bg-bg-sunken/50 p-4",
|
|
483
|
-
children: /* @__PURE__ */
|
|
483
|
+
children: /* @__PURE__ */ C("ul", {
|
|
484
484
|
className: "space-y-2 text-sm",
|
|
485
485
|
children: [
|
|
486
|
-
/* @__PURE__ */
|
|
486
|
+
/* @__PURE__ */ C("li", {
|
|
487
487
|
className: "flex items-start gap-2",
|
|
488
|
-
children: [/* @__PURE__ */
|
|
488
|
+
children: [/* @__PURE__ */ S(p, {
|
|
489
489
|
size: 16,
|
|
490
490
|
className: "mt-0.5 text-primary"
|
|
491
|
-
}), /* @__PURE__ */
|
|
491
|
+
}), /* @__PURE__ */ S("span", { children: k("devportal.reviewProcessInfo1", "Review typically takes 3-5 business days") })]
|
|
492
492
|
}),
|
|
493
|
-
/* @__PURE__ */
|
|
493
|
+
/* @__PURE__ */ C("li", {
|
|
494
494
|
className: "flex items-start gap-2",
|
|
495
|
-
children: [/* @__PURE__ */
|
|
495
|
+
children: [/* @__PURE__ */ S(p, {
|
|
496
496
|
size: 16,
|
|
497
497
|
className: "mt-0.5 text-primary"
|
|
498
|
-
}), /* @__PURE__ */
|
|
498
|
+
}), /* @__PURE__ */ S("span", { children: k("devportal.reviewProcessInfo2", "You'll receive notifications about review status changes") })]
|
|
499
499
|
}),
|
|
500
|
-
/* @__PURE__ */
|
|
500
|
+
/* @__PURE__ */ C("li", {
|
|
501
501
|
className: "flex items-start gap-2",
|
|
502
|
-
children: [/* @__PURE__ */
|
|
502
|
+
children: [/* @__PURE__ */ S(p, {
|
|
503
503
|
size: 16,
|
|
504
504
|
className: "mt-0.5 text-primary"
|
|
505
|
-
}), /* @__PURE__ */
|
|
505
|
+
}), /* @__PURE__ */ S("span", { children: k("devportal.reviewProcessInfo3", "If changes are requested, you can resubmit without losing your place in the queue") })]
|
|
506
506
|
}),
|
|
507
|
-
/* @__PURE__ */
|
|
507
|
+
/* @__PURE__ */ C("li", {
|
|
508
508
|
className: "flex items-start gap-2",
|
|
509
|
-
children: [/* @__PURE__ */
|
|
509
|
+
children: [/* @__PURE__ */ S(p, {
|
|
510
510
|
size: 16,
|
|
511
511
|
className: "mt-0.5 text-primary"
|
|
512
|
-
}), /* @__PURE__ */
|
|
512
|
+
}), /* @__PURE__ */ S("span", { children: k("devportal.reviewProcessInfo4", "Once approved and published, your app will be visible in the marketplace") })]
|
|
513
513
|
})
|
|
514
514
|
]
|
|
515
515
|
})
|
|
516
516
|
})
|
|
517
517
|
}),
|
|
518
|
-
/* @__PURE__ */
|
|
518
|
+
/* @__PURE__ */ C("div", {
|
|
519
519
|
className: "flex gap-3",
|
|
520
|
-
children: [/* @__PURE__ */
|
|
521
|
-
onClick: () =>
|
|
520
|
+
children: [/* @__PURE__ */ S("button", {
|
|
521
|
+
onClick: () => D?.(`${O}/apps/${w}`),
|
|
522
522
|
className: "rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken",
|
|
523
|
-
children:
|
|
524
|
-
}), /* @__PURE__ */
|
|
523
|
+
children: k("devportal.cancelButton", "Cancel")
|
|
524
|
+
}), /* @__PURE__ */ S("button", {
|
|
525
525
|
onClick: async () => {
|
|
526
|
-
if (
|
|
527
|
-
|
|
526
|
+
if (w) {
|
|
527
|
+
j(!0), N(null);
|
|
528
528
|
try {
|
|
529
|
-
let e = await
|
|
530
|
-
id:
|
|
531
|
-
notes:
|
|
529
|
+
let e = await me({ variables: {
|
|
530
|
+
id: w,
|
|
531
|
+
notes: F.trim() || void 0
|
|
532
532
|
} });
|
|
533
533
|
if (e.error) throw e.error;
|
|
534
|
-
await
|
|
535
|
-
id:
|
|
536
|
-
notes:
|
|
537
|
-
} }),
|
|
534
|
+
await he({ variables: {
|
|
535
|
+
id: w,
|
|
536
|
+
notes: F.trim() || void 0
|
|
537
|
+
} }), P(!0);
|
|
538
538
|
} catch (e) {
|
|
539
|
-
|
|
539
|
+
N(e instanceof Error ? e.message : k("devportal.submitFailedDefault", "Failed to submit for review"));
|
|
540
540
|
} finally {
|
|
541
|
-
|
|
541
|
+
j(!1);
|
|
542
542
|
}
|
|
543
543
|
}
|
|
544
544
|
},
|
|
545
|
-
disabled: !$ ||
|
|
546
|
-
"aria-disabled": !$ ||
|
|
547
|
-
title:
|
|
545
|
+
disabled: !$ || A || !L.allowed,
|
|
546
|
+
"aria-disabled": !$ || A || !L.allowed,
|
|
547
|
+
title: L.allowed ? void 0 : k("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
548
548
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-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",
|
|
549
|
-
children:
|
|
549
|
+
children: A ? /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(v, {
|
|
550
550
|
size: 16,
|
|
551
551
|
className: "animate-spin"
|
|
552
|
-
}),
|
|
552
|
+
}), k("devportal.submittingButton", "Submitting...")] }) : /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(oe, { size: 16 }), k("devportal.submitForReviewButton", "Submit for Review")] })
|
|
553
553
|
})]
|
|
554
554
|
})
|
|
555
555
|
]
|
|
@@ -557,6 +557,6 @@ var T = C`
|
|
|
557
557
|
});
|
|
558
558
|
};
|
|
559
559
|
//#endregion
|
|
560
|
-
export {
|
|
560
|
+
export { D as PublishPage };
|
|
561
561
|
|
|
562
562
|
//# sourceMappingURL=PublishPage.js.map
|