@burdenoff/microfe-devportal 2026.609.3 → 2026.611.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/DevportalRoot.js +6 -1
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoutes.js +169 -158
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/hooks/usePackageUpload.js +120 -0
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -0
- package/dist/devportal/pages/AnalyticsDashboardPage.js +73 -62
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +89 -82
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +948 -367
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +56 -45
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +30 -32
- package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
- package/dist/devportal/pages/CreateApplicationPage.js +8 -3
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +4 -4
- package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.js +233 -228
- package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +159 -148
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +1 -1
- package/dist/devportal/pages/DelegationsPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +25 -17
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +159 -153
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +2 -2
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +158 -153
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +223 -212
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +172 -165
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/ResourcesPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +405 -0
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -0
- package/dist/devportal/pages/SetupPage.js +170 -217
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +76 -97
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +172 -154
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +218 -200
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/providers/DevportalProvider.js +16 -13
- package/dist/devportal/providers/DevportalProvider.js.map +1 -1
- package/dist/devportal/types/index.js.map +1 -1
- package/dist/generated/global-operations.js +310 -225
- package/dist/generated/global-operations.js.map +1 -1
- package/package.json +1 -1
- package/dist/devportal/pages/RevenueRedirectPage.js +0 -14
- package/dist/devportal/pages/RevenueRedirectPage.js.map +0 -1
|
@@ -7,96 +7,103 @@ import "../components/index.js";
|
|
|
7
7
|
import { DEVPORTAL_PERMISSIONS as s } from "../constants/permissions.js";
|
|
8
8
|
import { useDevportalPermission as c } from "../hooks/usePermission.js";
|
|
9
9
|
import "../hooks/index.js";
|
|
10
|
-
import {
|
|
11
|
-
import { useI18n as
|
|
12
|
-
import { AlertTriangle as
|
|
13
|
-
import { useParams as
|
|
14
|
-
import { Fragment as
|
|
10
|
+
import { useEffect as l, useMemo as u, useState as d } from "react";
|
|
11
|
+
import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
12
|
+
import { AlertTriangle as p, CheckCircle as m, Eye as h, FileText as g, Globe as _, Image as v, Loader2 as y, Send as b, Shield as x, XCircle as S } from "lucide-react";
|
|
13
|
+
import { useParams as C } from "react-router-dom";
|
|
14
|
+
import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
15
15
|
//#region src/devportal/pages/PublishPage.tsx
|
|
16
|
-
var
|
|
16
|
+
var D = [
|
|
17
17
|
"SUBMITTED",
|
|
18
18
|
"IN_REVIEW",
|
|
19
19
|
"APPROVED",
|
|
20
20
|
"PUBLISHED"
|
|
21
|
-
],
|
|
22
|
-
let { appId:
|
|
23
|
-
let n =
|
|
21
|
+
], O = () => {
|
|
22
|
+
let { appId: O } = C(), { navigate: k, basePath: A } = e(), { t: j } = f(), M = (e, t) => {
|
|
23
|
+
let n = j(e);
|
|
24
24
|
return n === e ? t : n;
|
|
25
|
-
}, [
|
|
26
|
-
variables: { id:
|
|
27
|
-
skip: !
|
|
25
|
+
}, [N, P] = d(!1), [F, I] = d(null), [L, R] = d(""), z = c(s.APP_SUBMIT), { data: B, loading: V, error: H } = i({
|
|
26
|
+
variables: { id: O },
|
|
27
|
+
skip: !O,
|
|
28
28
|
fetchPolicy: "network-only"
|
|
29
|
-
}), [
|
|
30
|
-
|
|
31
|
-
let e =
|
|
29
|
+
}), [U] = a(), W = B?.application;
|
|
30
|
+
l(() => {
|
|
31
|
+
let e = W?.name;
|
|
32
|
+
if (!O || !e) return;
|
|
33
|
+
let t = window.__breadcrumbRegistry;
|
|
34
|
+
return t?.register(O, e), () => t?.unregister(O);
|
|
35
|
+
}, [O, W?.name]);
|
|
36
|
+
let G = D.includes(W?.status ?? ""), K = u(() => {
|
|
37
|
+
if (!W) return [];
|
|
38
|
+
let e = W.screenshots?.length ?? 0;
|
|
32
39
|
return [
|
|
33
40
|
{
|
|
34
41
|
id: "name",
|
|
35
|
-
label:
|
|
36
|
-
description:
|
|
37
|
-
status:
|
|
38
|
-
icon: /* @__PURE__ */
|
|
42
|
+
label: M("devportal.checklistNameLabel", "App Name & Description"),
|
|
43
|
+
description: M("devportal.checklistNameDesc", "Name and short description are required"),
|
|
44
|
+
status: W.name && W.shortDescription ? "passed" : "failed",
|
|
45
|
+
icon: /* @__PURE__ */ T(g, { size: 20 })
|
|
39
46
|
},
|
|
40
47
|
{
|
|
41
48
|
id: "category",
|
|
42
|
-
label:
|
|
43
|
-
description:
|
|
44
|
-
status:
|
|
45
|
-
icon: /* @__PURE__ */
|
|
49
|
+
label: M("devportal.checklistCategoryLabel", "Category"),
|
|
50
|
+
description: M("devportal.checklistCategoryDesc", "A category must be selected"),
|
|
51
|
+
status: W.category ? "passed" : "failed",
|
|
52
|
+
icon: /* @__PURE__ */ T(_, { size: 20 })
|
|
46
53
|
},
|
|
47
54
|
{
|
|
48
55
|
id: "privacy",
|
|
49
|
-
label:
|
|
50
|
-
description:
|
|
51
|
-
status:
|
|
52
|
-
icon: /* @__PURE__ */
|
|
56
|
+
label: M("devportal.checklistPrivacyLabel", "Privacy Policy"),
|
|
57
|
+
description: M("devportal.checklistPrivacyDesc", "Privacy policy URL is required"),
|
|
58
|
+
status: W.privacyPolicyUrl ? "passed" : "failed",
|
|
59
|
+
icon: /* @__PURE__ */ T(x, { size: 20 })
|
|
53
60
|
},
|
|
54
61
|
{
|
|
55
62
|
id: "terms",
|
|
56
|
-
label:
|
|
57
|
-
description:
|
|
58
|
-
status:
|
|
59
|
-
icon: /* @__PURE__ */
|
|
63
|
+
label: M("devportal.checklistTermsLabel", "Terms of Service"),
|
|
64
|
+
description: M("devportal.checklistTermsDesc", "Terms of service URL is required"),
|
|
65
|
+
status: W.termsOfServiceUrl ? "passed" : "failed",
|
|
66
|
+
icon: /* @__PURE__ */ T(g, { size: 20 })
|
|
60
67
|
},
|
|
61
68
|
{
|
|
62
69
|
id: "icon",
|
|
63
|
-
label:
|
|
64
|
-
description:
|
|
65
|
-
status:
|
|
66
|
-
icon: /* @__PURE__ */
|
|
70
|
+
label: M("devportal.checklistIconLabel", "App Icon"),
|
|
71
|
+
description: M("devportal.checklistIconDesc", "An icon URL is recommended"),
|
|
72
|
+
status: W.iconUrl ? "passed" : "warning",
|
|
73
|
+
icon: /* @__PURE__ */ T(v, { size: 20 })
|
|
67
74
|
},
|
|
68
75
|
{
|
|
69
76
|
id: "screenshots",
|
|
70
|
-
label:
|
|
71
|
-
description:
|
|
77
|
+
label: M("devportal.checklistScreenshotsLabel", "Screenshots"),
|
|
78
|
+
description: M("devportal.checklistScreenshotsDesc", "At least 3 screenshots are recommended"),
|
|
72
79
|
status: e >= 3 ? "passed" : "warning",
|
|
73
|
-
icon: /* @__PURE__ */
|
|
80
|
+
icon: /* @__PURE__ */ T(v, { size: 20 })
|
|
74
81
|
},
|
|
75
82
|
{
|
|
76
83
|
id: "status",
|
|
77
|
-
label:
|
|
78
|
-
description:
|
|
79
|
-
status: ["DRAFT", "REJECTED"].includes(
|
|
80
|
-
icon: /* @__PURE__ */
|
|
84
|
+
label: M("devportal.checklistStatusLabel", "App Status"),
|
|
85
|
+
description: M("devportal.checklistStatusDesc", "App must be in DRAFT or REJECTED state to submit"),
|
|
86
|
+
status: ["DRAFT", "REJECTED"].includes(W.status ?? "") ? "passed" : "warning",
|
|
87
|
+
icon: /* @__PURE__ */ T(m, { size: 20 })
|
|
81
88
|
}
|
|
82
89
|
];
|
|
83
|
-
}, [
|
|
90
|
+
}, [W]), q = K.filter((e) => e.status === "passed").length, J = K.filter((e) => e.status === "failed").length, Y = K.filter((e) => e.status === "warning").length, X = ["DRAFT", "REJECTED"].includes(W?.status ?? ""), Z = !V && !H && J === 0 && !!W && !G && X, Q = (e) => {
|
|
84
91
|
switch (e) {
|
|
85
|
-
case "passed": return /* @__PURE__ */
|
|
92
|
+
case "passed": return /* @__PURE__ */ T(m, {
|
|
86
93
|
size: 20,
|
|
87
94
|
className: "text-status-success-text"
|
|
88
95
|
});
|
|
89
|
-
case "failed": return /* @__PURE__ */
|
|
96
|
+
case "failed": return /* @__PURE__ */ T(S, {
|
|
90
97
|
size: 20,
|
|
91
98
|
className: "text-status-error-text"
|
|
92
99
|
});
|
|
93
|
-
case "warning": return /* @__PURE__ */
|
|
100
|
+
case "warning": return /* @__PURE__ */ T(p, {
|
|
94
101
|
size: 20,
|
|
95
102
|
className: "text-status-warning-text"
|
|
96
103
|
});
|
|
97
|
-
default: return /* @__PURE__ */
|
|
104
|
+
default: return /* @__PURE__ */ T("div", { className: "h-5 w-5 rounded-full border-2 border-border-default" });
|
|
98
105
|
}
|
|
99
|
-
},
|
|
106
|
+
}, $ = (e) => {
|
|
100
107
|
switch (e) {
|
|
101
108
|
case "passed": return "bg-status-success-bg-subtle border-border-subtle";
|
|
102
109
|
case "failed": return "bg-status-error-bg-subtle border-border-subtle";
|
|
@@ -104,239 +111,239 @@ var E = [
|
|
|
104
111
|
default: return "bg-bg-canvas border-border-subtle";
|
|
105
112
|
}
|
|
106
113
|
};
|
|
107
|
-
return
|
|
108
|
-
title:
|
|
109
|
-
description:
|
|
110
|
-
backLink: `/apps/${
|
|
111
|
-
backLabel:
|
|
112
|
-
children: /* @__PURE__ */
|
|
114
|
+
return V ? /* @__PURE__ */ T(t, {
|
|
115
|
+
title: M("devportal.publishToStoreTitle", "Publish to Store"),
|
|
116
|
+
description: M("devportal.loadingApplicationDetails", "Loading application details..."),
|
|
117
|
+
backLink: `/apps/${O}`,
|
|
118
|
+
backLabel: M("devportal.backToApplication", "Back to Application"),
|
|
119
|
+
children: /* @__PURE__ */ T("div", {
|
|
113
120
|
className: "flex items-center justify-center py-12",
|
|
114
|
-
children: /* @__PURE__ */
|
|
121
|
+
children: /* @__PURE__ */ T(y, { className: "animate-spin h-8 w-8 text-muted-foreground" })
|
|
115
122
|
})
|
|
116
|
-
}) :
|
|
117
|
-
title:
|
|
118
|
-
description:
|
|
119
|
-
backLink: `/apps/${
|
|
120
|
-
backLabel:
|
|
121
|
-
children: /* @__PURE__ */
|
|
123
|
+
}) : H || !W ? /* @__PURE__ */ T(t, {
|
|
124
|
+
title: M("devportal.publishToStoreTitle", "Publish to Store"),
|
|
125
|
+
description: M("devportal.couldNotLoadApplication", "Could not load application"),
|
|
126
|
+
backLink: `/apps/${O}`,
|
|
127
|
+
backLabel: M("devportal.backToApplication", "Back to Application"),
|
|
128
|
+
children: /* @__PURE__ */ T(r, {
|
|
122
129
|
variant: "error",
|
|
123
|
-
title:
|
|
124
|
-
children:
|
|
130
|
+
title: M("devportal.failedToLoadApplication", "Failed to load application"),
|
|
131
|
+
children: H?.message ?? M("devportal.applicationNotFound", "Application not found")
|
|
125
132
|
})
|
|
126
|
-
}) : /* @__PURE__ */
|
|
133
|
+
}) : /* @__PURE__ */ T(o, {
|
|
127
134
|
permission: s.APP_SUBMIT,
|
|
128
|
-
children: /* @__PURE__ */
|
|
129
|
-
title:
|
|
130
|
-
description: `${
|
|
131
|
-
backLink: `/apps/${
|
|
132
|
-
backLabel:
|
|
133
|
-
actions: /* @__PURE__ */
|
|
134
|
-
onClick: () =>
|
|
135
|
+
children: /* @__PURE__ */ E(t, {
|
|
136
|
+
title: M("devportal.publishToStoreTitle", "Publish to Store"),
|
|
137
|
+
description: `${M("devportal.submitAppForReview", "Submit")} "${W.name}" ${M("devportal.forReviewAndPublication", "for review and publication")}`,
|
|
138
|
+
backLink: `/apps/${O}`,
|
|
139
|
+
backLabel: M("devportal.backToApplication", "Back to Application"),
|
|
140
|
+
actions: /* @__PURE__ */ E("button", {
|
|
141
|
+
onClick: () => k?.(`${A}/apps/${O}/listing`),
|
|
135
142
|
className: "inline-flex items-center gap-2 rounded-md border px-3 py-2 text-sm font-medium hover:bg-muted",
|
|
136
|
-
children: [/* @__PURE__ */
|
|
143
|
+
children: [/* @__PURE__ */ T(h, { size: 16 }), M("devportal.previewListing", "Preview Listing")]
|
|
137
144
|
}),
|
|
138
145
|
children: [
|
|
139
|
-
|
|
146
|
+
G && /* @__PURE__ */ E(r, {
|
|
140
147
|
variant: "warning",
|
|
141
|
-
title:
|
|
148
|
+
title: M("devportal.alreadySubmittedTitle", "Already Submitted"),
|
|
142
149
|
children: [
|
|
143
|
-
|
|
150
|
+
M("devportal.alreadySubmittedMsg1", "This app is currently in"),
|
|
144
151
|
" ",
|
|
145
|
-
/* @__PURE__ */
|
|
152
|
+
/* @__PURE__ */ T("strong", { children: W.status }),
|
|
146
153
|
" ",
|
|
147
|
-
|
|
154
|
+
M("devportal.alreadySubmittedMsg2", "state and cannot be re-submitted until the review process is complete or the app is rejected.")
|
|
148
155
|
]
|
|
149
156
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ E("div", {
|
|
151
158
|
className: "rounded-lg border bg-card p-6",
|
|
152
159
|
children: [
|
|
153
|
-
/* @__PURE__ */
|
|
160
|
+
/* @__PURE__ */ T("h2", {
|
|
154
161
|
className: "text-lg font-semibold",
|
|
155
|
-
children:
|
|
162
|
+
children: M("devportal.preSubmissionChecklist", "Pre-submission Checklist")
|
|
156
163
|
}),
|
|
157
|
-
/* @__PURE__ */
|
|
164
|
+
/* @__PURE__ */ T("p", {
|
|
158
165
|
className: "mt-1 text-sm text-muted-foreground",
|
|
159
|
-
children:
|
|
166
|
+
children: M("devportal.completeAllRequiredItems", "Complete all required items before submitting for review")
|
|
160
167
|
}),
|
|
161
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ E("div", {
|
|
162
169
|
className: "mt-4 flex gap-6",
|
|
163
170
|
children: [
|
|
164
|
-
/* @__PURE__ */
|
|
171
|
+
/* @__PURE__ */ E("div", {
|
|
165
172
|
className: "flex items-center gap-2",
|
|
166
|
-
children: [/* @__PURE__ */
|
|
173
|
+
children: [/* @__PURE__ */ T(m, {
|
|
167
174
|
size: 20,
|
|
168
175
|
className: "text-status-success-text"
|
|
169
|
-
}), /* @__PURE__ */
|
|
170
|
-
|
|
176
|
+
}), /* @__PURE__ */ E("span", { children: [
|
|
177
|
+
q,
|
|
171
178
|
" ",
|
|
172
|
-
|
|
179
|
+
M("devportal.passed", "Passed")
|
|
173
180
|
] })]
|
|
174
181
|
}),
|
|
175
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ E("div", {
|
|
176
183
|
className: "flex items-center gap-2",
|
|
177
|
-
children: [/* @__PURE__ */
|
|
184
|
+
children: [/* @__PURE__ */ T(S, {
|
|
178
185
|
size: 20,
|
|
179
186
|
className: "text-status-error-text"
|
|
180
|
-
}), /* @__PURE__ */
|
|
181
|
-
|
|
187
|
+
}), /* @__PURE__ */ E("span", { children: [
|
|
188
|
+
J,
|
|
182
189
|
" ",
|
|
183
|
-
|
|
190
|
+
M("devportal.failed", "Failed")
|
|
184
191
|
] })]
|
|
185
192
|
}),
|
|
186
|
-
/* @__PURE__ */
|
|
193
|
+
/* @__PURE__ */ E("div", {
|
|
187
194
|
className: "flex items-center gap-2",
|
|
188
|
-
children: [/* @__PURE__ */
|
|
195
|
+
children: [/* @__PURE__ */ T(p, {
|
|
189
196
|
size: 20,
|
|
190
197
|
className: "text-status-warning-text"
|
|
191
|
-
}), /* @__PURE__ */
|
|
192
|
-
|
|
198
|
+
}), /* @__PURE__ */ E("span", { children: [
|
|
199
|
+
Y,
|
|
193
200
|
" ",
|
|
194
|
-
|
|
201
|
+
M("devportal.warnings", "Warnings")
|
|
195
202
|
] })]
|
|
196
203
|
})
|
|
197
204
|
]
|
|
198
205
|
})
|
|
199
206
|
]
|
|
200
207
|
}),
|
|
201
|
-
/* @__PURE__ */
|
|
208
|
+
/* @__PURE__ */ T(n, { children: /* @__PURE__ */ T("div", {
|
|
202
209
|
className: "space-y-3",
|
|
203
|
-
children:
|
|
204
|
-
className: `flex items-center gap-4 rounded-lg border p-4 ${
|
|
210
|
+
children: K.map((e) => /* @__PURE__ */ E("div", {
|
|
211
|
+
className: `flex items-center gap-4 rounded-lg border p-4 ${$(e.status)}`,
|
|
205
212
|
children: [
|
|
206
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ T("div", {
|
|
207
214
|
className: "rounded-lg bg-background p-2",
|
|
208
215
|
children: e.icon
|
|
209
216
|
}),
|
|
210
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ E("div", {
|
|
211
218
|
className: "flex-1",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
219
|
+
children: [/* @__PURE__ */ T("p", {
|
|
213
220
|
className: "font-medium",
|
|
214
221
|
children: e.label
|
|
215
|
-
}), /* @__PURE__ */
|
|
222
|
+
}), /* @__PURE__ */ T("p", {
|
|
216
223
|
className: "text-sm text-muted-foreground",
|
|
217
224
|
children: e.description
|
|
218
225
|
})]
|
|
219
226
|
}),
|
|
220
|
-
|
|
227
|
+
Q(e.status)
|
|
221
228
|
]
|
|
222
229
|
}, e.id))
|
|
223
230
|
}) }),
|
|
224
|
-
!
|
|
225
|
-
title:
|
|
226
|
-
description:
|
|
227
|
-
children: [/* @__PURE__ */
|
|
228
|
-
value:
|
|
229
|
-
onChange: (e) =>
|
|
230
|
-
placeholder:
|
|
231
|
+
!G && /* @__PURE__ */ E(n, {
|
|
232
|
+
title: M("devportal.notesForReviewerTitle", "Notes for Reviewer"),
|
|
233
|
+
description: M("devportal.notesForReviewerDesc", "Optional message to the review team"),
|
|
234
|
+
children: [/* @__PURE__ */ T("textarea", {
|
|
235
|
+
value: L,
|
|
236
|
+
onChange: (e) => R(e.target.value),
|
|
237
|
+
placeholder: M("devportal.notesForReviewerPlaceholder", "Describe what your app does, any special review considerations, or testing instructions..."),
|
|
231
238
|
rows: 4,
|
|
232
239
|
maxLength: 1e3,
|
|
233
240
|
className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring resize-none"
|
|
234
|
-
}), /* @__PURE__ */
|
|
241
|
+
}), /* @__PURE__ */ E("p", {
|
|
235
242
|
className: "mt-1 text-xs text-muted-foreground text-right",
|
|
236
|
-
children: [
|
|
243
|
+
children: [L.length, "/1000"]
|
|
237
244
|
})]
|
|
238
245
|
}),
|
|
239
|
-
|
|
246
|
+
F && /* @__PURE__ */ T(r, {
|
|
240
247
|
variant: "error",
|
|
241
|
-
title:
|
|
242
|
-
children:
|
|
248
|
+
title: M("devportal.submissionFailedTitle", "Submission Failed"),
|
|
249
|
+
children: F
|
|
243
250
|
}),
|
|
244
|
-
|
|
251
|
+
J > 0 && !G && /* @__PURE__ */ E(r, {
|
|
245
252
|
variant: "error",
|
|
246
|
-
title:
|
|
253
|
+
title: M("devportal.cannotSubmitTitle", "Cannot Submit"),
|
|
247
254
|
children: [
|
|
248
|
-
|
|
255
|
+
M("devportal.pleaseFixItems1", "Please fix"),
|
|
249
256
|
" ",
|
|
250
|
-
|
|
257
|
+
J,
|
|
251
258
|
" ",
|
|
252
|
-
|
|
253
|
-
/* @__PURE__ */
|
|
254
|
-
onClick: () =>
|
|
259
|
+
M("devportal.pleaseFixItems2", "failed item(s) before submitting for review."),
|
|
260
|
+
/* @__PURE__ */ T("button", {
|
|
261
|
+
onClick: () => k?.(`${A}/apps/${O}/edit`),
|
|
255
262
|
className: "mt-2 block text-sm underline hover:no-underline",
|
|
256
|
-
children:
|
|
263
|
+
children: M("devportal.editApplicationToFix", "Edit application to fix issues →")
|
|
257
264
|
})
|
|
258
265
|
]
|
|
259
266
|
}),
|
|
260
|
-
|
|
267
|
+
Y > 0 && J === 0 && !G && /* @__PURE__ */ E(r, {
|
|
261
268
|
variant: "warning",
|
|
262
|
-
title:
|
|
269
|
+
title: M("devportal.warningsTitle", "Warnings"),
|
|
263
270
|
children: [
|
|
264
|
-
|
|
271
|
+
M("devportal.warningsMsg1", "You have"),
|
|
265
272
|
" ",
|
|
266
|
-
|
|
273
|
+
Y,
|
|
267
274
|
" ",
|
|
268
|
-
|
|
275
|
+
M("devportal.warningsMsg2", "warning(s). While you can submit, addressing these may improve your app's chances of approval.")
|
|
269
276
|
]
|
|
270
277
|
}),
|
|
271
|
-
/* @__PURE__ */
|
|
272
|
-
title:
|
|
273
|
-
children: /* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ T(n, {
|
|
279
|
+
title: M("devportal.reviewProcessTitle", "Review Process"),
|
|
280
|
+
children: /* @__PURE__ */ T("div", {
|
|
274
281
|
className: "rounded-lg border bg-muted/50 p-4",
|
|
275
|
-
children: /* @__PURE__ */
|
|
282
|
+
children: /* @__PURE__ */ E("ul", {
|
|
276
283
|
className: "space-y-2 text-sm",
|
|
277
284
|
children: [
|
|
278
|
-
/* @__PURE__ */
|
|
285
|
+
/* @__PURE__ */ E("li", {
|
|
279
286
|
className: "flex items-start gap-2",
|
|
280
|
-
children: [/* @__PURE__ */
|
|
287
|
+
children: [/* @__PURE__ */ T(m, {
|
|
281
288
|
size: 16,
|
|
282
289
|
className: "mt-0.5 text-primary"
|
|
283
|
-
}), /* @__PURE__ */
|
|
290
|
+
}), /* @__PURE__ */ T("span", { children: M("devportal.reviewProcessInfo1", "Review typically takes 3-5 business days") })]
|
|
284
291
|
}),
|
|
285
|
-
/* @__PURE__ */
|
|
292
|
+
/* @__PURE__ */ E("li", {
|
|
286
293
|
className: "flex items-start gap-2",
|
|
287
|
-
children: [/* @__PURE__ */
|
|
294
|
+
children: [/* @__PURE__ */ T(m, {
|
|
288
295
|
size: 16,
|
|
289
296
|
className: "mt-0.5 text-primary"
|
|
290
|
-
}), /* @__PURE__ */
|
|
297
|
+
}), /* @__PURE__ */ T("span", { children: M("devportal.reviewProcessInfo2", "You'll receive notifications about review status changes") })]
|
|
291
298
|
}),
|
|
292
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ E("li", {
|
|
293
300
|
className: "flex items-start gap-2",
|
|
294
|
-
children: [/* @__PURE__ */
|
|
301
|
+
children: [/* @__PURE__ */ T(m, {
|
|
295
302
|
size: 16,
|
|
296
303
|
className: "mt-0.5 text-primary"
|
|
297
|
-
}), /* @__PURE__ */
|
|
304
|
+
}), /* @__PURE__ */ T("span", { children: M("devportal.reviewProcessInfo3", "If changes are requested, you can resubmit without losing your place in the queue") })]
|
|
298
305
|
}),
|
|
299
|
-
/* @__PURE__ */
|
|
306
|
+
/* @__PURE__ */ E("li", {
|
|
300
307
|
className: "flex items-start gap-2",
|
|
301
|
-
children: [/* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ T(m, {
|
|
302
309
|
size: 16,
|
|
303
310
|
className: "mt-0.5 text-primary"
|
|
304
|
-
}), /* @__PURE__ */
|
|
311
|
+
}), /* @__PURE__ */ T("span", { children: M("devportal.reviewProcessInfo4", "Once approved and published, your app will be visible in the marketplace") })]
|
|
305
312
|
})
|
|
306
313
|
]
|
|
307
314
|
})
|
|
308
315
|
})
|
|
309
316
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
317
|
+
/* @__PURE__ */ E("div", {
|
|
311
318
|
className: "flex gap-3",
|
|
312
|
-
children: [/* @__PURE__ */
|
|
313
|
-
onClick: () =>
|
|
319
|
+
children: [/* @__PURE__ */ T("button", {
|
|
320
|
+
onClick: () => k?.(`${A}/apps/${O}`),
|
|
314
321
|
className: "rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted",
|
|
315
|
-
children:
|
|
316
|
-
}), /* @__PURE__ */
|
|
322
|
+
children: M("devportal.cancelButton", "Cancel")
|
|
323
|
+
}), /* @__PURE__ */ T("button", {
|
|
317
324
|
onClick: async () => {
|
|
318
|
-
if (
|
|
319
|
-
|
|
325
|
+
if (O) {
|
|
326
|
+
P(!0), I(null);
|
|
320
327
|
try {
|
|
321
|
-
let e = await
|
|
322
|
-
id:
|
|
323
|
-
notes:
|
|
328
|
+
let e = await U({ variables: {
|
|
329
|
+
id: O,
|
|
330
|
+
notes: L.trim() || void 0
|
|
324
331
|
} });
|
|
325
332
|
if (e.error) throw e.error;
|
|
326
|
-
|
|
333
|
+
k?.(`${A}/apps/${O}`);
|
|
327
334
|
} catch (e) {
|
|
328
|
-
|
|
335
|
+
I(e instanceof Error ? e.message : M("devportal.submitFailedDefault", "Failed to submit for review")), P(!1);
|
|
329
336
|
}
|
|
330
337
|
}
|
|
331
338
|
},
|
|
332
|
-
disabled: !
|
|
333
|
-
"aria-disabled": !
|
|
334
|
-
title:
|
|
339
|
+
disabled: !Z || N || !z.allowed,
|
|
340
|
+
"aria-disabled": !Z || N || !z.allowed,
|
|
341
|
+
title: z.allowed ? void 0 : M("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
335
342
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
336
|
-
children:
|
|
343
|
+
children: N ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(y, {
|
|
337
344
|
size: 16,
|
|
338
345
|
className: "animate-spin"
|
|
339
|
-
}),
|
|
346
|
+
}), M("devportal.submittingButton", "Submitting...")] }) : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(b, { size: 16 }), M("devportal.submitForReviewButton", "Submit for Review")] })
|
|
340
347
|
})]
|
|
341
348
|
})
|
|
342
349
|
]
|
|
@@ -344,6 +351,6 @@ var E = [
|
|
|
344
351
|
});
|
|
345
352
|
};
|
|
346
353
|
//#endregion
|
|
347
|
-
export {
|
|
354
|
+
export { O as PublishPage };
|
|
348
355
|
|
|
349
356
|
//# sourceMappingURL=PublishPage.js.map
|