@burdenoff/microfe-devportal 2026.728.1 → 2026.801.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/__tests__/utils/renderWithProviders.d.ts +1 -1
- package/dist/__tests__/utils/renderWithProviders.d.ts.map +1 -1
- package/dist/devportal/AdminDevportalRoutes.js +14 -14
- package/dist/devportal/AdminDevportalRoutes.js.map +1 -1
- package/dist/devportal/DevportalRoutes.js +115 -115
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/components/SectionNav.js +0 -1
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/TelemetryErrorBoundary.js +7 -7
- package/dist/devportal/components/TelemetryErrorBoundary.js.map +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.js +41 -41
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +27 -27
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.d.ts.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +934 -928
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +39 -39
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +55 -55
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +36 -36
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.js +40 -40
- package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/InvitationDecisionPage.js +25 -25
- package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +36 -36
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/OAuthCallbackPage.js +10 -10
- package/dist/devportal/pages/OAuthCallbackPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js +27 -27
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +329 -329
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +181 -181
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +43 -43
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +65 -65
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +126 -126
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +28 -28
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +47 -47
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/providers/DevportalProvider.js +12 -12
- package/dist/devportal/providers/DevportalProvider.js.map +1 -1
- package/dist/node_modules/react-router/dist/production/lib/components.js +124 -0
- package/dist/node_modules/react-router/dist/production/lib/components.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/context.js +32 -0
- package/dist/node_modules/react-router/dist/production/lib/context.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/dom.js +83 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/dom.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/lib.js +358 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/lib.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/components.js +188 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/components.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/invariant.js +8 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/invariant.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/links.js +75 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/links.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/markup.js +15 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/markup.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/routeModules.js +18 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/routeModules.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/single-fetch.js +10 -0
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/single-fetch.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/errors.js +19 -0
- package/dist/node_modules/react-router/dist/production/lib/errors.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/hooks.js +296 -0
- package/dist/node_modules/react-router/dist/production/lib/hooks.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/router/history.js +166 -0
- package/dist/node_modules/react-router/dist/production/lib/router/history.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/router/router.js +33 -0
- package/dist/node_modules/react-router/dist/production/lib/router/router.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/router/url.js +9 -0
- package/dist/node_modules/react-router/dist/production/lib/router/url.js.map +1 -0
- package/dist/node_modules/react-router/dist/production/lib/router/utils.js +236 -0
- package/dist/node_modules/react-router/dist/production/lib/router/utils.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { Fragment as
|
|
18
|
-
import { EmphasisPanel as
|
|
19
|
-
import { graphqlFetch as
|
|
1
|
+
import { useParams as e } from "../../node_modules/react-router/dist/production/lib/hooks.js";
|
|
2
|
+
import { useDevportal as t } from "../providers/DevportalProvider.js";
|
|
3
|
+
import { cn as n } from "../utils/cn.js";
|
|
4
|
+
import { EmptyState as r } from "../components/EmptyState.js";
|
|
5
|
+
import { useGetApplicationsQuery as i, useGetOrganizationQuery as a, useUpdateOrgLegalInfoMutation as o, useUpdateOrgTaxInfoMutation as s, useUpdateOrganizationMutation as c } from "../../generated/global-operations.js";
|
|
6
|
+
import { PageLayout as l, PageSection as u } from "../components/PageLayout.js";
|
|
7
|
+
import { ORG_ROLE_LABELS as d } from "../utils/constants.js";
|
|
8
|
+
import { AppListItem as f } from "../components/AppCard.js";
|
|
9
|
+
import { StatCard as p, StatCardGrid as m } from "../components/StatCard.js";
|
|
10
|
+
import { DataTable as h, DetailList as g } from "../components/DataTable.js";
|
|
11
|
+
import { InputField as _, TextareaField as v } from "../components/FormField.js";
|
|
12
|
+
import { useDevportalPermission as y } from "../hooks/usePermission.js";
|
|
13
|
+
import { DEVPORTAL_PERMISSIONS as b } from "../constants/permissions.js";
|
|
14
|
+
import { useEffect as x, useState as S } from "react";
|
|
15
|
+
import { useI18n as C } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
16
|
+
import { AlertCircle as w, AppWindow as T, ArrowRight as E, BarChart3 as D, Building2 as O, CheckCircle as k, DollarSign as A, ExternalLink as j, Loader2 as M, Plus as N, Settings as P, Shield as F, TrendingUp as I, Users as L } from "lucide-react";
|
|
17
|
+
import { Fragment as R, jsx as z, jsxs as B } from "react/jsx-runtime";
|
|
18
|
+
import { EmphasisPanel as V, NextSteps as H } from "@burdenoff/fe-libs/ui";
|
|
19
|
+
import { graphqlFetch as U } from "@burdenoff/fe-libs/shared/graphql";
|
|
20
20
|
//#region src/devportal/pages/OrganizationDetailPage.tsx
|
|
21
|
-
var
|
|
22
|
-
function
|
|
21
|
+
var W = "\n query OrganizationVerificationDetails($id: ID!) {\n developerOrganization(id: $id) {\n id\n verificationMethod\n verificationRequestedAt\n verificationStatus\n verificationRequestNotes\n verificationEvidenceUrl\n verificationDomain\n verificationRequestedBy\n verificationReviewedAt\n verificationReviewedBy\n verificationReviewNotes\n verificationRejectedReason\n }\n }\n", G = "\n mutation RequestOrgVerificationExtended(\n $id: ID!\n $method: String!\n $notes: String\n $evidenceUrl: String\n $domain: String\n ) {\n requestOrgVerification(\n id: $id\n method: $method\n notes: $notes\n evidenceUrl: $evidenceUrl\n domain: $domain\n ) {\n id\n verificationMethod\n verificationRequestedAt\n verificationStatus\n verificationRequestNotes\n verificationEvidenceUrl\n verificationDomain\n verificationRejectedReason\n }\n }\n";
|
|
22
|
+
function K(e) {
|
|
23
23
|
let t = e;
|
|
24
24
|
return {
|
|
25
25
|
id: e.id,
|
|
@@ -74,7 +74,7 @@ function W(e) {
|
|
|
74
74
|
updatedAt: e.updatedAt
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
-
function
|
|
77
|
+
function q(e) {
|
|
78
78
|
return {
|
|
79
79
|
id: e.id,
|
|
80
80
|
organizationId: e.organizationId,
|
|
@@ -93,11 +93,11 @@ function G(e) {
|
|
|
93
93
|
updatedAt: e.updatedAt
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function ee(e) {
|
|
97
97
|
let t = e.trim().toLowerCase();
|
|
98
98
|
return /^[a-z0-9.-]+\.[a-z]{2,}$/i.test(t) && !t.includes("@");
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function J(e) {
|
|
101
101
|
try {
|
|
102
102
|
let t = new URL(e.trim());
|
|
103
103
|
return t.protocol === "http:" || t.protocol === "https:";
|
|
@@ -105,7 +105,7 @@ function q(e) {
|
|
|
105
105
|
return !1;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
function
|
|
108
|
+
function te(e) {
|
|
109
109
|
let t = e.trim();
|
|
110
110
|
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t);
|
|
111
111
|
}
|
|
@@ -115,399 +115,399 @@ var Y = {
|
|
|
115
115
|
ADMIN: 2,
|
|
116
116
|
OWNER: 3
|
|
117
117
|
}, X = () => {
|
|
118
|
-
let { navigate:
|
|
119
|
-
let n =
|
|
118
|
+
let { navigate: r, basePath: o, setActiveOrgId: s, currentUser: c } = t(), { orgId: u } = e(), { t: d } = C(), f = (e, t) => {
|
|
119
|
+
let n = d(e);
|
|
120
120
|
return n === e ? t : n;
|
|
121
|
-
}, [
|
|
121
|
+
}, [p, m] = S("overview"), h = [
|
|
122
122
|
{
|
|
123
123
|
id: "overview",
|
|
124
|
-
label:
|
|
125
|
-
icon:
|
|
124
|
+
label: f("devportal.overview", "Overview"),
|
|
125
|
+
icon: O
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
id: "apps",
|
|
129
|
-
label:
|
|
130
|
-
icon:
|
|
129
|
+
label: f("devportal.applications", "Applications"),
|
|
130
|
+
icon: T
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
id: "members",
|
|
134
|
-
label:
|
|
135
|
-
icon:
|
|
134
|
+
label: f("devportal.members", "Members"),
|
|
135
|
+
icon: L
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
id: "settings",
|
|
139
|
-
label:
|
|
140
|
-
icon:
|
|
139
|
+
label: f("devportal.settings", "Settings"),
|
|
140
|
+
icon: P
|
|
141
141
|
}
|
|
142
|
-
], { data:
|
|
143
|
-
variables: { id:
|
|
144
|
-
skip: !
|
|
145
|
-
}),
|
|
142
|
+
], { data: g, previousData: _, loading: v, error: y } = a({
|
|
143
|
+
variables: { id: u },
|
|
144
|
+
skip: !u
|
|
145
|
+
}), b = g ?? _, { data: E } = i({
|
|
146
146
|
variables: {
|
|
147
147
|
limit: 50,
|
|
148
|
-
organizationId:
|
|
148
|
+
organizationId: u
|
|
149
149
|
},
|
|
150
|
-
skip: !
|
|
150
|
+
skip: !u,
|
|
151
151
|
fetchPolicy: "cache-and-network"
|
|
152
|
-
}),
|
|
153
|
-
|
|
152
|
+
}), D = (b?.developerOrganization?.members ?? []).map(q), k = (c ? D.find((e) => e.userId === c.id) : void 0)?.role, j = k !== void 0 && Y[k] >= Y.DEVELOPER, N = k !== void 0 && Y[k] >= Y.ADMIN, F = N, I = N, R = h.filter((e) => e.id !== "settings" || N), V = (e) => {
|
|
153
|
+
r?.(`${o}${e}`);
|
|
154
154
|
};
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
}, [
|
|
158
|
-
|
|
159
|
-
}, [
|
|
160
|
-
let e =
|
|
161
|
-
if (!
|
|
155
|
+
if (x(() => {
|
|
156
|
+
u && s(u);
|
|
157
|
+
}, [u, s]), x(() => {
|
|
158
|
+
p === "settings" && !N && m("overview");
|
|
159
|
+
}, [p, N]), x(() => {
|
|
160
|
+
let e = b?.developerOrganization?.name;
|
|
161
|
+
if (!u || !e) return;
|
|
162
162
|
let t = window.__breadcrumbRegistry;
|
|
163
|
-
return t?.register(
|
|
164
|
-
}, [
|
|
165
|
-
title:
|
|
166
|
-
backLink: `${
|
|
167
|
-
backLabel:
|
|
168
|
-
children: /* @__PURE__ */
|
|
163
|
+
return t?.register(u, e), () => t?.unregister(u);
|
|
164
|
+
}, [u, g?.developerOrganization?.name]), v && !b) return /* @__PURE__ */ z(l, {
|
|
165
|
+
title: f("devportal.loadingDots", "Loading..."),
|
|
166
|
+
backLink: `${o}/organizations`,
|
|
167
|
+
backLabel: f("devportal.backToOrganizations", "Back to Organizations"),
|
|
168
|
+
children: /* @__PURE__ */ z("div", {
|
|
169
169
|
className: "flex items-center justify-center py-12",
|
|
170
|
-
children: /* @__PURE__ */
|
|
170
|
+
children: /* @__PURE__ */ z(M, { className: "h-8 w-8 animate-spin text-text-secondary" })
|
|
171
171
|
})
|
|
172
172
|
});
|
|
173
|
-
if (
|
|
174
|
-
title:
|
|
175
|
-
backLink: `${
|
|
176
|
-
backLabel:
|
|
177
|
-
children: /* @__PURE__ */
|
|
173
|
+
if (y || !b?.developerOrganization) return /* @__PURE__ */ z(l, {
|
|
174
|
+
title: f("devportal.organizationNotFound", "Organization Not Found"),
|
|
175
|
+
backLink: `${o}/organizations`,
|
|
176
|
+
backLabel: f("devportal.backToOrganizations", "Back to Organizations"),
|
|
177
|
+
children: /* @__PURE__ */ B("div", {
|
|
178
178
|
className: "flex flex-col items-center justify-center py-12 gap-4",
|
|
179
179
|
children: [
|
|
180
|
-
/* @__PURE__ */
|
|
181
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ z(w, { className: "h-12 w-12 text-status-error-text" }),
|
|
181
|
+
/* @__PURE__ */ z("h2", {
|
|
182
182
|
className: "text-lg font-semibold",
|
|
183
|
-
children:
|
|
183
|
+
children: f("devportal.organizationNotFoundLower", "Organization not found")
|
|
184
184
|
}),
|
|
185
|
-
/* @__PURE__ */
|
|
185
|
+
/* @__PURE__ */ z("p", {
|
|
186
186
|
className: "text-text-secondary",
|
|
187
|
-
children:
|
|
187
|
+
children: y?.message || f("devportal.organizationNotFoundDescription", "The organization you're looking for doesn't exist or you don't have access to it.")
|
|
188
188
|
}),
|
|
189
|
-
/* @__PURE__ */
|
|
190
|
-
onClick: () =>
|
|
189
|
+
/* @__PURE__ */ z("button", {
|
|
190
|
+
onClick: () => V("/organizations"),
|
|
191
191
|
className: "mt-4 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",
|
|
192
|
-
children:
|
|
192
|
+
children: f("devportal.backToOrganizations", "Back to Organizations")
|
|
193
193
|
})
|
|
194
194
|
]
|
|
195
195
|
})
|
|
196
196
|
});
|
|
197
|
-
let
|
|
198
|
-
return /* @__PURE__ */
|
|
199
|
-
title:
|
|
200
|
-
description:
|
|
201
|
-
purpose:
|
|
202
|
-
backLink: `${
|
|
203
|
-
backLabel:
|
|
204
|
-
actions: /* @__PURE__ */
|
|
197
|
+
let U = K(b.developerOrganization), W = D, G = E?.applications?.edges?.map((e) => e.node) ?? [];
|
|
198
|
+
return /* @__PURE__ */ B(l, {
|
|
199
|
+
title: U.name,
|
|
200
|
+
description: U.description,
|
|
201
|
+
purpose: f("devportal.orgDetailPurpose", "This is the home for one organization — the apps it owns, the people who can work on them, and its store and billing settings. Invite teammates, add apps, and verify the org so your published listings look trustworthy."),
|
|
202
|
+
backLink: `${o}/organizations`,
|
|
203
|
+
backLabel: f("devportal.backToOrganizations", "Back to Organizations"),
|
|
204
|
+
actions: /* @__PURE__ */ z("div", {
|
|
205
205
|
className: "flex items-center gap-2",
|
|
206
|
-
children:
|
|
207
|
-
onClick: () =>
|
|
206
|
+
children: F ? /* @__PURE__ */ B("button", {
|
|
207
|
+
onClick: () => r?.(`/billing/earnings?developerOrgId=${encodeURIComponent(U.id)}&developerOrgName=${encodeURIComponent(U.name)}`),
|
|
208
208
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-bg-sunken transition-colors",
|
|
209
|
-
children: [/* @__PURE__ */
|
|
209
|
+
children: [/* @__PURE__ */ z(A, { size: 16 }), f("devportal.revenue", "Revenue")]
|
|
210
210
|
}) : null
|
|
211
211
|
}),
|
|
212
212
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ z("div", {
|
|
214
214
|
className: "border-b",
|
|
215
|
-
children: /* @__PURE__ */
|
|
215
|
+
children: /* @__PURE__ */ z("nav", {
|
|
216
216
|
className: "-mb-px flex gap-4 overflow-x-auto",
|
|
217
217
|
role: "tablist",
|
|
218
|
-
"aria-label":
|
|
219
|
-
children:
|
|
220
|
-
let
|
|
221
|
-
return /* @__PURE__ */
|
|
218
|
+
"aria-label": f("devportal.organizationSections", "Organization sections"),
|
|
219
|
+
children: R.map((e) => {
|
|
220
|
+
let t = e.icon;
|
|
221
|
+
return /* @__PURE__ */ B("button", {
|
|
222
222
|
id: `organization-tab-${e.id}`,
|
|
223
223
|
role: "tab",
|
|
224
|
-
"aria-selected":
|
|
224
|
+
"aria-selected": p === e.id,
|
|
225
225
|
"aria-controls": `organization-panel-${e.id}`,
|
|
226
|
-
onClick: () =>
|
|
227
|
-
className:
|
|
228
|
-
children: [/* @__PURE__ */
|
|
226
|
+
onClick: () => m(e.id),
|
|
227
|
+
className: n("flex items-center gap-2 border-b-2 px-1 py-3 text-sm font-medium transition-colors", p === e.id ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-muted-foreground"),
|
|
228
|
+
children: [/* @__PURE__ */ z(t, { size: 16 }), e.label]
|
|
229
229
|
}, e.id);
|
|
230
230
|
})
|
|
231
231
|
})
|
|
232
232
|
}),
|
|
233
|
-
/* @__PURE__ */
|
|
233
|
+
/* @__PURE__ */ z(H, {
|
|
234
234
|
className: "mt-6",
|
|
235
|
-
storageKey: `devportal-org-${
|
|
235
|
+
storageKey: `devportal-org-${U.id}`,
|
|
236
236
|
steps: [
|
|
237
|
-
...
|
|
237
|
+
...I ? [{
|
|
238
238
|
id: "invite-members",
|
|
239
|
-
label:
|
|
240
|
-
description:
|
|
241
|
-
icon: /* @__PURE__ */
|
|
242
|
-
onClick: () =>
|
|
239
|
+
label: f("devportal.inviteMembers", "Invite members"),
|
|
240
|
+
description: f("devportal.orgStepInvite", "Add teammates so they can build alongside you"),
|
|
241
|
+
icon: /* @__PURE__ */ z(L, { size: 16 }),
|
|
242
|
+
onClick: () => m("members")
|
|
243
243
|
}] : [],
|
|
244
|
-
...
|
|
244
|
+
...j ? [{
|
|
245
245
|
id: "create-app",
|
|
246
|
-
label:
|
|
247
|
-
description:
|
|
248
|
-
icon: /* @__PURE__ */
|
|
249
|
-
onClick: () =>
|
|
246
|
+
label: f("devportal.createApp", "Create App"),
|
|
247
|
+
description: f("devportal.orgStepCreateApp", "Build a new application under this organization"),
|
|
248
|
+
icon: /* @__PURE__ */ z(T, { size: 16 }),
|
|
249
|
+
onClick: () => V("/apps/new")
|
|
250
250
|
}] : [],
|
|
251
|
-
...
|
|
251
|
+
...N ? [{
|
|
252
252
|
id: "settings",
|
|
253
|
-
label:
|
|
254
|
-
description:
|
|
255
|
-
icon: /* @__PURE__ */
|
|
256
|
-
onClick: () =>
|
|
257
|
-
done: !!
|
|
253
|
+
label: f("devportal.orgStepVerify", "Complete organization profile"),
|
|
254
|
+
description: f("devportal.orgStepVerifyDesc", "Add a logo and details, then request verification"),
|
|
255
|
+
icon: /* @__PURE__ */ z(P, { size: 16 }),
|
|
256
|
+
onClick: () => m("settings"),
|
|
257
|
+
done: !!U.isVerified
|
|
258
258
|
}] : []
|
|
259
259
|
]
|
|
260
260
|
}),
|
|
261
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ B("div", {
|
|
262
262
|
className: "mt-6",
|
|
263
|
-
id: `organization-panel-${
|
|
263
|
+
id: `organization-panel-${p}`,
|
|
264
264
|
role: "tabpanel",
|
|
265
|
-
"aria-labelledby": `organization-tab-${
|
|
265
|
+
"aria-labelledby": `organization-tab-${p}`,
|
|
266
266
|
tabIndex: 0,
|
|
267
267
|
children: [
|
|
268
|
-
|
|
269
|
-
org:
|
|
270
|
-
apps:
|
|
271
|
-
members:
|
|
272
|
-
canCreateApps:
|
|
273
|
-
canViewRevenue:
|
|
274
|
-
onNavigate:
|
|
275
|
-
onShowApps: () =>
|
|
268
|
+
p === "overview" && /* @__PURE__ */ z(Z, {
|
|
269
|
+
org: U,
|
|
270
|
+
apps: G,
|
|
271
|
+
members: W,
|
|
272
|
+
canCreateApps: j,
|
|
273
|
+
canViewRevenue: F,
|
|
274
|
+
onNavigate: V,
|
|
275
|
+
onShowApps: () => m("apps")
|
|
276
276
|
}),
|
|
277
|
-
|
|
278
|
-
apps:
|
|
279
|
-
onNavigate:
|
|
280
|
-
canCreateApps:
|
|
277
|
+
p === "apps" && /* @__PURE__ */ z(Q, {
|
|
278
|
+
apps: G,
|
|
279
|
+
onNavigate: V,
|
|
280
|
+
canCreateApps: j
|
|
281
281
|
}),
|
|
282
|
-
|
|
283
|
-
members:
|
|
284
|
-
onNavigate:
|
|
285
|
-
orgId:
|
|
286
|
-
canInviteMembers:
|
|
282
|
+
p === "members" && /* @__PURE__ */ z($, {
|
|
283
|
+
members: W,
|
|
284
|
+
onNavigate: V,
|
|
285
|
+
orgId: U.id,
|
|
286
|
+
canInviteMembers: I
|
|
287
287
|
}),
|
|
288
|
-
|
|
288
|
+
p === "settings" && N && /* @__PURE__ */ z(ne, { org: U })
|
|
289
289
|
]
|
|
290
290
|
})
|
|
291
291
|
]
|
|
292
292
|
});
|
|
293
|
-
}, Z = ({ org: e, apps: t, members:
|
|
294
|
-
let { t: c } =
|
|
293
|
+
}, Z = ({ org: e, apps: t, members: n, canCreateApps: i, canViewRevenue: a, onNavigate: o, onShowApps: s }) => {
|
|
294
|
+
let { t: c } = C(), l = (e, t) => {
|
|
295
295
|
let n = c(e);
|
|
296
296
|
return n === e ? t : n;
|
|
297
297
|
};
|
|
298
|
-
return /* @__PURE__ */
|
|
298
|
+
return /* @__PURE__ */ B("div", {
|
|
299
299
|
className: "grid gap-6 lg:grid-cols-3",
|
|
300
|
-
children: [/* @__PURE__ */
|
|
300
|
+
children: [/* @__PURE__ */ B("div", {
|
|
301
301
|
className: "lg:col-span-2 space-y-6",
|
|
302
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ z(V, { children: /* @__PURE__ */ B(m, {
|
|
303
303
|
columns: a ? 4 : 3,
|
|
304
304
|
children: [
|
|
305
|
-
/* @__PURE__ */
|
|
306
|
-
title:
|
|
305
|
+
/* @__PURE__ */ z(p, {
|
|
306
|
+
title: l("devportal.publishedApps", "Published Apps"),
|
|
307
307
|
value: `${e.publishedApps}/${e.totalApps}`,
|
|
308
|
-
icon: /* @__PURE__ */
|
|
308
|
+
icon: /* @__PURE__ */ z(T, { size: 20 })
|
|
309
309
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
311
|
-
title:
|
|
310
|
+
/* @__PURE__ */ z(p, {
|
|
311
|
+
title: l("devportal.totalInstalls", "Total Installs"),
|
|
312
312
|
value: e.totalInstalls.toLocaleString(),
|
|
313
|
-
icon: /* @__PURE__ */
|
|
313
|
+
icon: /* @__PURE__ */ z(I, { size: 20 })
|
|
314
314
|
}),
|
|
315
|
-
a ? /* @__PURE__ */
|
|
316
|
-
title:
|
|
315
|
+
a ? /* @__PURE__ */ z(p, {
|
|
316
|
+
title: l("devportal.totalRevenue", "Total Revenue"),
|
|
317
317
|
value: `$${e.totalRevenue.toLocaleString()}`,
|
|
318
|
-
icon: /* @__PURE__ */
|
|
318
|
+
icon: /* @__PURE__ */ z(A, { size: 20 })
|
|
319
319
|
}) : null,
|
|
320
|
-
/* @__PURE__ */
|
|
321
|
-
title:
|
|
322
|
-
value: e.averageRating ? `${e.averageRating.toFixed(1)} ★` :
|
|
323
|
-
icon: /* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ z(p, {
|
|
321
|
+
title: l("devportal.avgRating", "Avg Rating"),
|
|
322
|
+
value: e.averageRating ? `${e.averageRating.toFixed(1)} ★` : l("devportal.notAvailable", "N/A"),
|
|
323
|
+
icon: /* @__PURE__ */ z(D, { size: 20 })
|
|
324
324
|
})
|
|
325
325
|
]
|
|
326
|
-
}) }), /* @__PURE__ */
|
|
327
|
-
title:
|
|
328
|
-
actions: /* @__PURE__ */
|
|
326
|
+
}) }), /* @__PURE__ */ z(u, {
|
|
327
|
+
title: l("devportal.recentApplications", "Recent Applications"),
|
|
328
|
+
actions: /* @__PURE__ */ B("button", {
|
|
329
329
|
onClick: s,
|
|
330
330
|
className: "text-sm text-primary hover:underline flex items-center gap-1",
|
|
331
331
|
children: [
|
|
332
|
-
|
|
332
|
+
l("devportal.viewAll", "View all"),
|
|
333
333
|
" ",
|
|
334
|
-
/* @__PURE__ */
|
|
334
|
+
/* @__PURE__ */ z(E, { size: 14 })
|
|
335
335
|
]
|
|
336
336
|
}),
|
|
337
|
-
children: t.length > 0 ? /* @__PURE__ */
|
|
337
|
+
children: t.length > 0 ? /* @__PURE__ */ z("div", {
|
|
338
338
|
className: "space-y-2",
|
|
339
|
-
children: t.slice(0, 3).map((e) => /* @__PURE__ */
|
|
339
|
+
children: t.slice(0, 3).map((e) => /* @__PURE__ */ z(f, {
|
|
340
340
|
app: e,
|
|
341
341
|
onClick: () => o(`/apps/${e.id}`)
|
|
342
342
|
}, e.id))
|
|
343
|
-
}) : /* @__PURE__ */
|
|
343
|
+
}) : /* @__PURE__ */ z(r, {
|
|
344
344
|
illustration: "empty-data",
|
|
345
|
-
icon: /* @__PURE__ */
|
|
346
|
-
title:
|
|
347
|
-
description:
|
|
348
|
-
action: i ? /* @__PURE__ */
|
|
345
|
+
icon: /* @__PURE__ */ z(T, { size: 24 }),
|
|
346
|
+
title: l("devportal.noApplications", "No applications"),
|
|
347
|
+
description: l("devportal.createYourFirstApplication", "Create your first application"),
|
|
348
|
+
action: i ? /* @__PURE__ */ B("button", {
|
|
349
349
|
onClick: () => o("/apps/new"),
|
|
350
350
|
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",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
351
|
+
children: [/* @__PURE__ */ z(N, { size: 16 }), l("devportal.createApp", "Create App")]
|
|
352
352
|
}) : void 0
|
|
353
353
|
})
|
|
354
354
|
})]
|
|
355
|
-
}), /* @__PURE__ */
|
|
355
|
+
}), /* @__PURE__ */ B("div", {
|
|
356
356
|
className: "space-y-6",
|
|
357
357
|
children: [
|
|
358
|
-
a ? /* @__PURE__ */
|
|
359
|
-
title:
|
|
360
|
-
children: /* @__PURE__ */
|
|
358
|
+
a ? /* @__PURE__ */ z(u, {
|
|
359
|
+
title: l("devportal.revenueSummary", "Revenue Summary"),
|
|
360
|
+
children: /* @__PURE__ */ z(g, { items: [
|
|
361
361
|
{
|
|
362
|
-
label:
|
|
362
|
+
label: l("devportal.totalRevenue", "Total Revenue"),
|
|
363
363
|
value: `$${e.totalRevenue.toLocaleString()}`
|
|
364
364
|
},
|
|
365
365
|
{
|
|
366
|
-
label:
|
|
366
|
+
label: l("devportal.platformFees", "Platform Fees"),
|
|
367
367
|
value: `$${e.totalPlatformFees.toLocaleString()}`
|
|
368
368
|
},
|
|
369
369
|
{
|
|
370
|
-
label:
|
|
370
|
+
label: l("devportal.netPayouts", "Net Payouts"),
|
|
371
371
|
value: `$${e.totalPayouts.toLocaleString()}`
|
|
372
372
|
},
|
|
373
373
|
{
|
|
374
|
-
label:
|
|
374
|
+
label: l("devportal.pendingBalance", "Pending Balance"),
|
|
375
375
|
value: `$${e.pendingBalance.toLocaleString()}`
|
|
376
376
|
},
|
|
377
377
|
{
|
|
378
|
-
label:
|
|
378
|
+
label: l("devportal.lifetimeRevenue", "Lifetime Revenue"),
|
|
379
379
|
value: `$${e.lifetimeRevenue.toLocaleString()}`
|
|
380
380
|
}
|
|
381
381
|
] })
|
|
382
382
|
}) : null,
|
|
383
|
-
/* @__PURE__ */
|
|
384
|
-
title:
|
|
385
|
-
actions: /* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ z(u, {
|
|
384
|
+
title: l("devportal.teamMembers", "Team Members"),
|
|
385
|
+
actions: /* @__PURE__ */ z("button", {
|
|
386
386
|
onClick: () => o(`/organizations/${e.id}/members`),
|
|
387
387
|
className: "text-sm text-primary hover:underline",
|
|
388
|
-
children:
|
|
388
|
+
children: l("devportal.manage", "Manage")
|
|
389
389
|
}),
|
|
390
|
-
children: /* @__PURE__ */
|
|
390
|
+
children: /* @__PURE__ */ B("div", {
|
|
391
391
|
className: "space-y-2",
|
|
392
|
-
children: [
|
|
392
|
+
children: [n.slice(0, 3).map((e) => /* @__PURE__ */ z("div", {
|
|
393
393
|
className: "flex items-center justify-between py-2",
|
|
394
|
-
children: /* @__PURE__ */
|
|
394
|
+
children: /* @__PURE__ */ B("div", {
|
|
395
395
|
className: "flex items-center gap-3",
|
|
396
|
-
children: [/* @__PURE__ */
|
|
396
|
+
children: [/* @__PURE__ */ z("div", {
|
|
397
397
|
className: "h-8 w-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center text-sm font-medium text-primary",
|
|
398
398
|
children: e.email?.charAt(0).toUpperCase() || "U"
|
|
399
|
-
}), /* @__PURE__ */
|
|
399
|
+
}), /* @__PURE__ */ B("div", { children: [/* @__PURE__ */ z("p", {
|
|
400
400
|
className: "text-sm font-medium",
|
|
401
401
|
children: e.email
|
|
402
|
-
}), /* @__PURE__ */
|
|
402
|
+
}), /* @__PURE__ */ z("p", {
|
|
403
403
|
className: "text-xs text-text-secondary",
|
|
404
|
-
children:
|
|
404
|
+
children: d[e.role]
|
|
405
405
|
})] })]
|
|
406
406
|
})
|
|
407
|
-
}, e.id)),
|
|
407
|
+
}, e.id)), n.length > 3 && /* @__PURE__ */ B("p", {
|
|
408
408
|
className: "text-xs text-text-secondary",
|
|
409
409
|
children: [
|
|
410
410
|
"+",
|
|
411
|
-
|
|
411
|
+
n.length - 3,
|
|
412
412
|
" ",
|
|
413
|
-
|
|
413
|
+
l("devportal.moreMembers", "more members")
|
|
414
414
|
]
|
|
415
415
|
})]
|
|
416
416
|
})
|
|
417
417
|
}),
|
|
418
|
-
/* @__PURE__ */
|
|
419
|
-
title:
|
|
420
|
-
children: /* @__PURE__ */
|
|
418
|
+
/* @__PURE__ */ z(u, {
|
|
419
|
+
title: l("devportal.links", "Links"),
|
|
420
|
+
children: /* @__PURE__ */ B("div", {
|
|
421
421
|
className: "space-y-2",
|
|
422
|
-
children: [e.websiteUrl && /* @__PURE__ */
|
|
422
|
+
children: [e.websiteUrl && /* @__PURE__ */ B("a", {
|
|
423
423
|
href: e.websiteUrl,
|
|
424
424
|
target: "_blank",
|
|
425
425
|
rel: "noopener noreferrer",
|
|
426
426
|
className: "flex items-center gap-2 text-sm text-primary hover:underline",
|
|
427
|
-
children: [/* @__PURE__ */
|
|
428
|
-
}), e.contactEmail && /* @__PURE__ */
|
|
427
|
+
children: [/* @__PURE__ */ z(j, { size: 14 }), l("devportal.website", "Website")]
|
|
428
|
+
}), e.contactEmail && /* @__PURE__ */ B("a", {
|
|
429
429
|
href: `mailto:${e.contactEmail}`,
|
|
430
430
|
className: "flex items-center gap-2 text-sm text-primary hover:underline",
|
|
431
|
-
children: [/* @__PURE__ */
|
|
431
|
+
children: [/* @__PURE__ */ z(j, { size: 14 }), e.contactEmail]
|
|
432
432
|
})]
|
|
433
433
|
})
|
|
434
434
|
})
|
|
435
435
|
]
|
|
436
436
|
})]
|
|
437
437
|
});
|
|
438
|
-
}, Q = ({ apps: e, onNavigate: t, canCreateApps:
|
|
439
|
-
let { t: i } =
|
|
438
|
+
}, Q = ({ apps: e, onNavigate: t, canCreateApps: n }) => {
|
|
439
|
+
let { t: i } = C(), a = (e, t) => {
|
|
440
440
|
let n = i(e);
|
|
441
441
|
return n === e ? t : n;
|
|
442
442
|
};
|
|
443
|
-
return /* @__PURE__ */
|
|
443
|
+
return /* @__PURE__ */ B("div", {
|
|
444
444
|
className: "space-y-6",
|
|
445
|
-
children: [/* @__PURE__ */
|
|
445
|
+
children: [/* @__PURE__ */ B("div", {
|
|
446
446
|
className: "flex items-center justify-between",
|
|
447
|
-
children: [/* @__PURE__ */
|
|
447
|
+
children: [/* @__PURE__ */ B("p", {
|
|
448
448
|
className: "text-sm text-text-secondary",
|
|
449
449
|
children: [
|
|
450
450
|
e.length,
|
|
451
451
|
" ",
|
|
452
452
|
e.length === 1 ? a("devportal.application", "application") : a("devportal.applications", "applications")
|
|
453
453
|
]
|
|
454
|
-
}),
|
|
454
|
+
}), n ? /* @__PURE__ */ B("button", {
|
|
455
455
|
onClick: () => t("/apps/new"),
|
|
456
456
|
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 transition-colors",
|
|
457
|
-
children: [/* @__PURE__ */
|
|
457
|
+
children: [/* @__PURE__ */ z(N, { size: 16 }), a("devportal.createApp", "Create App")]
|
|
458
458
|
}) : null]
|
|
459
|
-
}), e.length > 0 ? /* @__PURE__ */
|
|
459
|
+
}), e.length > 0 ? /* @__PURE__ */ z("div", {
|
|
460
460
|
className: "space-y-2",
|
|
461
|
-
children: e.map((e) => /* @__PURE__ */
|
|
461
|
+
children: e.map((e) => /* @__PURE__ */ z(f, {
|
|
462
462
|
app: e,
|
|
463
463
|
onClick: () => t(`/apps/${e.id}`)
|
|
464
464
|
}, e.id))
|
|
465
|
-
}) : /* @__PURE__ */
|
|
465
|
+
}) : /* @__PURE__ */ z(r, {
|
|
466
466
|
illustration: "empty-data",
|
|
467
|
-
icon: /* @__PURE__ */
|
|
467
|
+
icon: /* @__PURE__ */ z(T, { size: 32 }),
|
|
468
468
|
title: a("devportal.noApplications", "No applications"),
|
|
469
469
|
description: a("devportal.createFirstAppForOrg", "Create your first application for this organization"),
|
|
470
|
-
action:
|
|
470
|
+
action: n ? /* @__PURE__ */ B("button", {
|
|
471
471
|
onClick: () => t("/apps/new"),
|
|
472
472
|
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",
|
|
473
|
-
children: [/* @__PURE__ */
|
|
473
|
+
children: [/* @__PURE__ */ z(N, { size: 16 }), a("devportal.createApp", "Create App")]
|
|
474
474
|
}) : void 0
|
|
475
475
|
})]
|
|
476
476
|
});
|
|
477
|
-
}, $ = ({ members: e, onNavigate:
|
|
478
|
-
let { t: a } =
|
|
477
|
+
}, $ = ({ members: e, onNavigate: t, orgId: r, canInviteMembers: i }) => {
|
|
478
|
+
let { t: a } = C(), o = (e, t) => {
|
|
479
479
|
let n = a(e);
|
|
480
480
|
return n === e ? t : n;
|
|
481
481
|
};
|
|
482
|
-
return /* @__PURE__ */
|
|
482
|
+
return /* @__PURE__ */ B("div", {
|
|
483
483
|
className: "space-y-6",
|
|
484
|
-
children: [/* @__PURE__ */
|
|
484
|
+
children: [/* @__PURE__ */ B("div", {
|
|
485
485
|
className: "flex items-center justify-between",
|
|
486
|
-
children: [/* @__PURE__ */
|
|
486
|
+
children: [/* @__PURE__ */ B("p", {
|
|
487
487
|
className: "text-sm text-text-secondary",
|
|
488
488
|
children: [
|
|
489
489
|
e.length,
|
|
490
490
|
" ",
|
|
491
491
|
e.length === 1 ? o("devportal.memberLower", "member") : o("devportal.membersLower", "members")
|
|
492
492
|
]
|
|
493
|
-
}), i ? /* @__PURE__ */
|
|
494
|
-
onClick: () =>
|
|
493
|
+
}), i ? /* @__PURE__ */ B("button", {
|
|
494
|
+
onClick: () => t(`/organizations/${r}/members`),
|
|
495
495
|
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 transition-colors",
|
|
496
|
-
children: [/* @__PURE__ */
|
|
496
|
+
children: [/* @__PURE__ */ z(N, { size: 16 }), o("devportal.inviteMember", "Invite Member")]
|
|
497
497
|
}) : null]
|
|
498
|
-
}), /* @__PURE__ */
|
|
498
|
+
}), /* @__PURE__ */ z(h, {
|
|
499
499
|
data: e,
|
|
500
500
|
keyField: "id",
|
|
501
501
|
columns: [
|
|
502
502
|
{
|
|
503
503
|
key: "email",
|
|
504
504
|
header: o("devportal.memberColumn", "Member"),
|
|
505
|
-
render: (e) => /* @__PURE__ */
|
|
505
|
+
render: (e) => /* @__PURE__ */ B("div", {
|
|
506
506
|
className: "flex items-center gap-3",
|
|
507
|
-
children: [/* @__PURE__ */
|
|
507
|
+
children: [/* @__PURE__ */ z("div", {
|
|
508
508
|
className: "h-8 w-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center text-sm font-medium text-primary",
|
|
509
509
|
children: e.email?.charAt(0).toUpperCase() || "U"
|
|
510
|
-
}), /* @__PURE__ */
|
|
510
|
+
}), /* @__PURE__ */ z("span", {
|
|
511
511
|
className: "font-medium",
|
|
512
512
|
children: e.email
|
|
513
513
|
})]
|
|
@@ -516,9 +516,9 @@ var Y = {
|
|
|
516
516
|
{
|
|
517
517
|
key: "role",
|
|
518
518
|
header: o("devportal.roleColumn", "Role"),
|
|
519
|
-
render: (e) => /* @__PURE__ */
|
|
520
|
-
className:
|
|
521
|
-
children:
|
|
519
|
+
render: (e) => /* @__PURE__ */ z("span", {
|
|
520
|
+
className: n("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium", e.role === "OWNER" ? "bg-accent-purple-subtle text-accent-purple" : e.role === "ADMIN" ? "bg-status-info-bg-subtle text-status-info-text" : e.role === "DEVELOPER" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-bg-sunken text-text-primary"),
|
|
521
|
+
children: d[e.role]
|
|
522
522
|
})
|
|
523
523
|
},
|
|
524
524
|
{
|
|
@@ -530,10 +530,10 @@ var Y = {
|
|
|
530
530
|
})]
|
|
531
531
|
});
|
|
532
532
|
}, ne = ({ org: e }) => {
|
|
533
|
-
let { t } =
|
|
533
|
+
let { t } = C(), { allowed: n } = y(b.ORG_UPDATE), r = (e, n) => {
|
|
534
534
|
let r = t(e);
|
|
535
535
|
return r === e ? n : r;
|
|
536
|
-
}, [i,
|
|
536
|
+
}, [i, a] = S({
|
|
537
537
|
name: e.name,
|
|
538
538
|
description: e.description ?? "",
|
|
539
539
|
websiteUrl: e.websiteUrl ?? "",
|
|
@@ -541,25 +541,25 @@ var Y = {
|
|
|
541
541
|
supportEmail: e.supportEmail ?? "",
|
|
542
542
|
logoUrl: e.logoUrl ?? "",
|
|
543
543
|
bannerUrl: e.bannerUrl ?? ""
|
|
544
|
-
}), [
|
|
544
|
+
}), [l, d] = S({
|
|
545
545
|
legalEntityName: e.legalEntityName ?? "",
|
|
546
546
|
legalEntityType: e.legalEntityType ?? ""
|
|
547
|
-
}), [f, p] =
|
|
547
|
+
}), [f, p] = S({
|
|
548
548
|
taxId: e.taxId ?? "",
|
|
549
549
|
taxCountry: e.taxCountry ?? ""
|
|
550
|
-
}), [m,
|
|
550
|
+
}), [m, h] = S(null), [w, T] = S(null), [E, D] = S("manual"), [O, A] = S(!1), [j, N] = S(""), [I, L] = S(""), [V, H] = S(""), [K, q] = S(null), [Y, X] = S(!1), Z = K ?? {
|
|
551
551
|
verificationMethod: e.verificationMethod,
|
|
552
552
|
verificationRequestedAt: e.verificationRequestedAt,
|
|
553
553
|
verificationStatus: e.verificationStatus,
|
|
554
554
|
verificationRequestNotes: e.verificationRequestNotes,
|
|
555
555
|
verificationRejectedReason: e.verificationRejectedReason
|
|
556
556
|
}, Q = [];
|
|
557
|
-
i.contactEmail.trim() ?
|
|
557
|
+
i.contactEmail.trim() ? te(i.contactEmail) || Q.push(r("devportal.contactEmailInvalid", "Contact email must be valid")) : Q.push(r("devportal.contactEmailRequired", "Contact email is required")), i.supportEmail.trim() && !te(i.supportEmail) && Q.push(r("devportal.supportEmailInvalid", "Support email must be valid")), i.websiteUrl.trim() ? J(i.websiteUrl) || Q.push(r("devportal.websiteInvalid", "Website URL must be valid")) : Q.push(r("devportal.websiteRequired", "Website URL is required")), l.legalEntityName.trim() || Q.push(r("devportal.legalEntityNameRequired", "Legal entity name is required")), l.legalEntityType.trim() || Q.push(r("devportal.legalEntityTypeRequired", "Entity type is required")), f.taxId.trim() || Q.push(r("devportal.taxIdRequired", "Tax ID is required")), f.taxCountry.trim() ? /^[A-Za-z]{2}$/.test(f.taxCountry.trim()) || Q.push(r("devportal.taxCountryInvalid", "Tax country must be a 2-letter code")) : Q.push(r("devportal.taxCountryRequired", "Tax country is required"));
|
|
558
558
|
let $ = [];
|
|
559
|
-
E === "domain" && !
|
|
560
|
-
let ne = Q.length === 0 && $.length === 0 && !Y && n, [re, { loading: ie }] =
|
|
561
|
-
|
|
562
|
-
|
|
559
|
+
E === "domain" && !ee(V.trim()) && $.push(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com")), E === "document" && !J(I.trim()) && $.push(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://")), E === "manual" && !j.trim() && $.push(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
|
|
560
|
+
let ne = Q.length === 0 && $.length === 0 && !Y && n, [re, { loading: ie }] = c({ refetchQueries: ["GetOrganization"] }), [ae, { loading: oe }] = o({ refetchQueries: ["GetOrganization"] }), [se, { loading: ce }] = s({ refetchQueries: ["GetOrganization"] });
|
|
561
|
+
x(() => {
|
|
562
|
+
a({
|
|
563
563
|
name: e.name,
|
|
564
564
|
description: e.description ?? "",
|
|
565
565
|
websiteUrl: e.websiteUrl ?? "",
|
|
@@ -574,15 +574,15 @@ var Y = {
|
|
|
574
574
|
taxId: e.taxId ?? "",
|
|
575
575
|
taxCountry: e.taxCountry ?? ""
|
|
576
576
|
});
|
|
577
|
-
}, [e.id]),
|
|
578
|
-
e.id &&
|
|
577
|
+
}, [e.id]), x(() => {
|
|
578
|
+
e.id && U({
|
|
579
579
|
gateway: "global",
|
|
580
|
-
query:
|
|
580
|
+
query: W,
|
|
581
581
|
variables: { id: e.id }
|
|
582
|
-
}).then((e) =>
|
|
582
|
+
}).then((e) => q(e.data?.developerOrganization ?? null)).catch(() => q(null));
|
|
583
583
|
}, [e.id, O]);
|
|
584
584
|
let le = async () => {
|
|
585
|
-
T(null),
|
|
585
|
+
T(null), h(null);
|
|
586
586
|
try {
|
|
587
587
|
await re({ variables: {
|
|
588
588
|
id: e.id,
|
|
@@ -595,25 +595,25 @@ var Y = {
|
|
|
595
595
|
logoUrl: i.logoUrl.trim() || null,
|
|
596
596
|
bannerUrl: i.bannerUrl.trim() || null
|
|
597
597
|
}
|
|
598
|
-
} }),
|
|
598
|
+
} }), h(r("devportal.organizationUpdated", "Organization details updated"));
|
|
599
599
|
} catch (e) {
|
|
600
600
|
T(e instanceof Error ? e.message : r("devportal.failedToUpdateOrganization", "Failed to update organization"));
|
|
601
601
|
}
|
|
602
602
|
}, ue = async () => {
|
|
603
|
-
T(null),
|
|
603
|
+
T(null), h(null);
|
|
604
604
|
try {
|
|
605
605
|
await ae({ variables: {
|
|
606
606
|
id: e.id,
|
|
607
607
|
input: {
|
|
608
|
-
legalEntityName:
|
|
609
|
-
legalEntityType:
|
|
608
|
+
legalEntityName: l.legalEntityName.trim() || null,
|
|
609
|
+
legalEntityType: l.legalEntityType.trim() || null
|
|
610
610
|
}
|
|
611
|
-
} }),
|
|
611
|
+
} }), h(r("devportal.legalInfoUpdated", "Legal information updated"));
|
|
612
612
|
} catch (e) {
|
|
613
613
|
T(e instanceof Error ? e.message : r("devportal.failedToUpdateLegalInfo", "Failed to update legal information"));
|
|
614
614
|
}
|
|
615
615
|
}, de = async () => {
|
|
616
|
-
T(null),
|
|
616
|
+
T(null), h(null);
|
|
617
617
|
try {
|
|
618
618
|
await se({ variables: {
|
|
619
619
|
id: e.id,
|
|
@@ -621,93 +621,93 @@ var Y = {
|
|
|
621
621
|
taxId: f.taxId.trim() || null,
|
|
622
622
|
taxCountry: f.taxCountry.trim() || null
|
|
623
623
|
}
|
|
624
|
-
} }),
|
|
624
|
+
} }), h(r("devportal.taxInfoUpdated", "Tax information updated"));
|
|
625
625
|
} catch (e) {
|
|
626
626
|
T(e instanceof Error ? e.message : r("devportal.failedToUpdateTaxInfo", "Failed to update tax information"));
|
|
627
627
|
}
|
|
628
628
|
};
|
|
629
|
-
return /* @__PURE__ */
|
|
629
|
+
return /* @__PURE__ */ B("div", {
|
|
630
630
|
className: "space-y-6 max-w-2xl",
|
|
631
631
|
children: [
|
|
632
|
-
w && /* @__PURE__ */
|
|
632
|
+
w && /* @__PURE__ */ z("div", {
|
|
633
633
|
className: "rounded-md border border-status-error-bg bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text",
|
|
634
634
|
children: w
|
|
635
635
|
}),
|
|
636
|
-
m && /* @__PURE__ */
|
|
636
|
+
m && /* @__PURE__ */ z("div", {
|
|
637
637
|
className: "rounded-md border border-status-success-bg bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text",
|
|
638
638
|
children: m
|
|
639
639
|
}),
|
|
640
|
-
/* @__PURE__ */
|
|
640
|
+
/* @__PURE__ */ z(u, {
|
|
641
641
|
title: r("devportal.organizationDetails", "Organization Details"),
|
|
642
|
-
children: /* @__PURE__ */
|
|
642
|
+
children: /* @__PURE__ */ B("div", {
|
|
643
643
|
className: "space-y-4",
|
|
644
644
|
children: [
|
|
645
|
-
/* @__PURE__ */
|
|
645
|
+
/* @__PURE__ */ B("div", {
|
|
646
646
|
className: "grid gap-4 sm:grid-cols-2",
|
|
647
|
-
children: [/* @__PURE__ */
|
|
647
|
+
children: [/* @__PURE__ */ z(_, {
|
|
648
648
|
label: r("devportal.organizationName", "Organization Name"),
|
|
649
649
|
value: i.name,
|
|
650
|
-
onChange: (e) =>
|
|
650
|
+
onChange: (e) => a((t) => ({
|
|
651
651
|
...t,
|
|
652
652
|
name: e.target.value
|
|
653
653
|
})),
|
|
654
654
|
disabled: !n,
|
|
655
655
|
required: !0
|
|
656
|
-
}), /* @__PURE__ */
|
|
656
|
+
}), /* @__PURE__ */ z(_, {
|
|
657
657
|
label: r("devportal.slug", "Slug"),
|
|
658
658
|
value: e.slug,
|
|
659
659
|
disabled: !0,
|
|
660
660
|
hint: r("devportal.slugReadOnly", "Slug cannot be changed here")
|
|
661
661
|
})]
|
|
662
662
|
}),
|
|
663
|
-
/* @__PURE__ */
|
|
663
|
+
/* @__PURE__ */ z(v, {
|
|
664
664
|
label: r("devportal.description", "Description"),
|
|
665
665
|
value: i.description,
|
|
666
|
-
onChange: (e) =>
|
|
666
|
+
onChange: (e) => a((t) => ({
|
|
667
667
|
...t,
|
|
668
668
|
description: e.target.value
|
|
669
669
|
})),
|
|
670
670
|
disabled: !n,
|
|
671
671
|
rows: 4
|
|
672
672
|
}),
|
|
673
|
-
/* @__PURE__ */
|
|
673
|
+
/* @__PURE__ */ B("div", {
|
|
674
674
|
className: "grid gap-4 sm:grid-cols-2",
|
|
675
675
|
children: [
|
|
676
|
-
/* @__PURE__ */
|
|
676
|
+
/* @__PURE__ */ z(_, {
|
|
677
677
|
label: r("devportal.website", "Website"),
|
|
678
678
|
type: "url",
|
|
679
679
|
value: i.websiteUrl,
|
|
680
|
-
onChange: (e) =>
|
|
680
|
+
onChange: (e) => a((t) => ({
|
|
681
681
|
...t,
|
|
682
682
|
websiteUrl: e.target.value
|
|
683
683
|
})),
|
|
684
684
|
disabled: !n
|
|
685
685
|
}),
|
|
686
|
-
/* @__PURE__ */
|
|
686
|
+
/* @__PURE__ */ z(_, {
|
|
687
687
|
label: r("devportal.contactEmail", "Contact Email"),
|
|
688
688
|
type: "email",
|
|
689
689
|
value: i.contactEmail,
|
|
690
|
-
onChange: (e) =>
|
|
690
|
+
onChange: (e) => a((t) => ({
|
|
691
691
|
...t,
|
|
692
692
|
contactEmail: e.target.value
|
|
693
693
|
})),
|
|
694
694
|
disabled: !n
|
|
695
695
|
}),
|
|
696
|
-
/* @__PURE__ */
|
|
696
|
+
/* @__PURE__ */ z(_, {
|
|
697
697
|
label: r("devportal.supportEmail", "Support Email"),
|
|
698
698
|
type: "email",
|
|
699
699
|
value: i.supportEmail,
|
|
700
|
-
onChange: (e) =>
|
|
700
|
+
onChange: (e) => a((t) => ({
|
|
701
701
|
...t,
|
|
702
702
|
supportEmail: e.target.value
|
|
703
703
|
})),
|
|
704
704
|
disabled: !n
|
|
705
705
|
}),
|
|
706
|
-
/* @__PURE__ */
|
|
706
|
+
/* @__PURE__ */ z(_, {
|
|
707
707
|
label: r("devportal.logoUrl", "Logo URL"),
|
|
708
708
|
type: "url",
|
|
709
709
|
value: i.logoUrl,
|
|
710
|
-
onChange: (e) =>
|
|
710
|
+
onChange: (e) => a((t) => ({
|
|
711
711
|
...t,
|
|
712
712
|
logoUrl: e.target.value
|
|
713
713
|
})),
|
|
@@ -715,20 +715,20 @@ var Y = {
|
|
|
715
715
|
})
|
|
716
716
|
]
|
|
717
717
|
}),
|
|
718
|
-
/* @__PURE__ */
|
|
718
|
+
/* @__PURE__ */ z(_, {
|
|
719
719
|
label: r("devportal.bannerUrl", "Banner URL"),
|
|
720
720
|
type: "url",
|
|
721
721
|
value: i.bannerUrl,
|
|
722
|
-
onChange: (e) =>
|
|
722
|
+
onChange: (e) => a((t) => ({
|
|
723
723
|
...t,
|
|
724
724
|
bannerUrl: e.target.value
|
|
725
725
|
})),
|
|
726
726
|
disabled: !n
|
|
727
727
|
}),
|
|
728
|
-
/* @__PURE__ */
|
|
728
|
+
/* @__PURE__ */ z(g, { items: [
|
|
729
729
|
{
|
|
730
730
|
label: r("devportal.organizationId", "Organization ID"),
|
|
731
|
-
value: /* @__PURE__ */
|
|
731
|
+
value: /* @__PURE__ */ z("code", {
|
|
732
732
|
className: "text-xs",
|
|
733
733
|
children: e.id
|
|
734
734
|
})
|
|
@@ -750,49 +750,49 @@ var Y = {
|
|
|
750
750
|
value: `${(e.platformFeeRate * 100).toFixed(0)}%`
|
|
751
751
|
}
|
|
752
752
|
] }),
|
|
753
|
-
/* @__PURE__ */
|
|
753
|
+
/* @__PURE__ */ z("div", {
|
|
754
754
|
className: "flex justify-end",
|
|
755
|
-
children: /* @__PURE__ */
|
|
755
|
+
children: /* @__PURE__ */ B("button", {
|
|
756
756
|
type: "button",
|
|
757
757
|
disabled: !n || ie,
|
|
758
758
|
onClick: () => void le(),
|
|
759
759
|
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",
|
|
760
|
-
children: [ie ? /* @__PURE__ */
|
|
760
|
+
children: [ie ? /* @__PURE__ */ z(M, {
|
|
761
761
|
size: 14,
|
|
762
762
|
className: "animate-spin"
|
|
763
|
-
}) : /* @__PURE__ */
|
|
763
|
+
}) : /* @__PURE__ */ z(P, { size: 14 }), r("devportal.saveChanges", "Save Changes")]
|
|
764
764
|
})
|
|
765
765
|
})
|
|
766
766
|
]
|
|
767
767
|
})
|
|
768
768
|
}),
|
|
769
|
-
/* @__PURE__ */
|
|
769
|
+
/* @__PURE__ */ z(u, {
|
|
770
770
|
title: r("devportal.legalInformation", "Legal Information"),
|
|
771
|
-
children: /* @__PURE__ */
|
|
771
|
+
children: /* @__PURE__ */ B("div", {
|
|
772
772
|
className: "space-y-4",
|
|
773
773
|
children: [
|
|
774
|
-
/* @__PURE__ */
|
|
774
|
+
/* @__PURE__ */ B("div", {
|
|
775
775
|
className: "grid gap-4 sm:grid-cols-2",
|
|
776
776
|
children: [
|
|
777
|
-
/* @__PURE__ */
|
|
777
|
+
/* @__PURE__ */ z(_, {
|
|
778
778
|
label: r("devportal.legalEntityName", "Legal Entity Name"),
|
|
779
|
-
value:
|
|
779
|
+
value: l.legalEntityName,
|
|
780
780
|
onChange: (e) => d((t) => ({
|
|
781
781
|
...t,
|
|
782
782
|
legalEntityName: e.target.value
|
|
783
783
|
})),
|
|
784
784
|
disabled: !n
|
|
785
785
|
}),
|
|
786
|
-
/* @__PURE__ */
|
|
786
|
+
/* @__PURE__ */ z(_, {
|
|
787
787
|
label: r("devportal.entityType", "Entity Type"),
|
|
788
|
-
value:
|
|
788
|
+
value: l.legalEntityType,
|
|
789
789
|
onChange: (e) => d((t) => ({
|
|
790
790
|
...t,
|
|
791
791
|
legalEntityType: e.target.value
|
|
792
792
|
})),
|
|
793
793
|
disabled: !n
|
|
794
794
|
}),
|
|
795
|
-
/* @__PURE__ */
|
|
795
|
+
/* @__PURE__ */ z(_, {
|
|
796
796
|
label: r("devportal.taxId", "Tax ID"),
|
|
797
797
|
value: f.taxId,
|
|
798
798
|
onChange: (e) => p((t) => ({
|
|
@@ -801,7 +801,7 @@ var Y = {
|
|
|
801
801
|
})),
|
|
802
802
|
disabled: !n
|
|
803
803
|
}),
|
|
804
|
-
/* @__PURE__ */
|
|
804
|
+
/* @__PURE__ */ z(_, {
|
|
805
805
|
label: r("devportal.taxCountry", "Tax Country"),
|
|
806
806
|
value: f.taxCountry,
|
|
807
807
|
onChange: (e) => p((t) => ({
|
|
@@ -812,37 +812,37 @@ var Y = {
|
|
|
812
812
|
})
|
|
813
813
|
]
|
|
814
814
|
}),
|
|
815
|
-
/* @__PURE__ */
|
|
815
|
+
/* @__PURE__ */ z(g, { items: [{
|
|
816
816
|
label: r("devportal.taxForm", "Tax Form"),
|
|
817
817
|
value: e.taxFormType || r("devportal.notSubmitted", "Not submitted")
|
|
818
818
|
}, {
|
|
819
819
|
label: r("devportal.taxFormStatus", "Tax Form Status"),
|
|
820
|
-
value: e.taxFormType ? e.taxFormVerified ? /* @__PURE__ */
|
|
820
|
+
value: e.taxFormType ? e.taxFormVerified ? /* @__PURE__ */ B("span", {
|
|
821
821
|
className: "text-status-success-text flex items-center gap-1",
|
|
822
822
|
children: [
|
|
823
|
-
/* @__PURE__ */
|
|
823
|
+
/* @__PURE__ */ z(k, { size: 14 }),
|
|
824
824
|
" ",
|
|
825
825
|
r("devportal.verified", "Verified")
|
|
826
826
|
]
|
|
827
827
|
}) : r("devportal.pendingVerification", "Pending verification") : r("devportal.notSubmitted", "Not submitted")
|
|
828
828
|
}] }),
|
|
829
|
-
/* @__PURE__ */
|
|
829
|
+
/* @__PURE__ */ B("div", {
|
|
830
830
|
className: "flex justify-end gap-2",
|
|
831
|
-
children: [/* @__PURE__ */
|
|
831
|
+
children: [/* @__PURE__ */ B("button", {
|
|
832
832
|
type: "button",
|
|
833
833
|
disabled: !n || oe,
|
|
834
834
|
onClick: () => void ue(),
|
|
835
835
|
className: "inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken disabled:opacity-50",
|
|
836
|
-
children: [oe ? /* @__PURE__ */
|
|
836
|
+
children: [oe ? /* @__PURE__ */ z(M, {
|
|
837
837
|
size: 14,
|
|
838
838
|
className: "animate-spin"
|
|
839
839
|
}) : null, r("devportal.saveLegalInfo", "Save Legal Info")]
|
|
840
|
-
}), /* @__PURE__ */
|
|
840
|
+
}), /* @__PURE__ */ B("button", {
|
|
841
841
|
type: "button",
|
|
842
842
|
disabled: !n || ce,
|
|
843
843
|
onClick: () => void de(),
|
|
844
844
|
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",
|
|
845
|
-
children: [ce ? /* @__PURE__ */
|
|
845
|
+
children: [ce ? /* @__PURE__ */ z(M, {
|
|
846
846
|
size: 14,
|
|
847
847
|
className: "animate-spin"
|
|
848
848
|
}) : null, r("devportal.saveTaxInfo", "Save Tax Info")]
|
|
@@ -851,14 +851,14 @@ var Y = {
|
|
|
851
851
|
]
|
|
852
852
|
})
|
|
853
853
|
}),
|
|
854
|
-
/* @__PURE__ */
|
|
854
|
+
/* @__PURE__ */ B(u, {
|
|
855
855
|
title: r("devportal.verificationStatus", "Verification Status"),
|
|
856
|
-
children: [/* @__PURE__ */
|
|
856
|
+
children: [/* @__PURE__ */ z(g, { items: [{
|
|
857
857
|
label: r("devportal.verifiedLabel", "Verified"),
|
|
858
|
-
value: Z.verificationStatus === "VERIFIED" ? /* @__PURE__ */
|
|
858
|
+
value: Z.verificationStatus === "VERIFIED" ? /* @__PURE__ */ B("span", {
|
|
859
859
|
className: "text-status-success-text flex items-center gap-1",
|
|
860
860
|
children: [
|
|
861
|
-
/* @__PURE__ */
|
|
861
|
+
/* @__PURE__ */ z(k, { size: 14 }),
|
|
862
862
|
" ",
|
|
863
863
|
r("devportal.verifiedVia", "Verified via"),
|
|
864
864
|
" ",
|
|
@@ -867,27 +867,27 @@ var Y = {
|
|
|
867
867
|
}) : Z.verificationStatus === "PENDING" ? r("devportal.pendingVerification", "Pending verification") : Z.verificationStatus === "REJECTED" ? r("devportal.verificationRejected", "Rejected") : r("devportal.notVerified", "Not verified")
|
|
868
868
|
}, {
|
|
869
869
|
label: r("devportal.certifiedLabel", "Certified"),
|
|
870
|
-
value: e.isCertified ? /* @__PURE__ */
|
|
870
|
+
value: e.isCertified ? /* @__PURE__ */ B("span", {
|
|
871
871
|
className: "text-accent-blue flex items-center gap-1",
|
|
872
872
|
children: [
|
|
873
|
-
/* @__PURE__ */
|
|
873
|
+
/* @__PURE__ */ z(F, { size: 14 }),
|
|
874
874
|
" ",
|
|
875
875
|
r("devportal.certifiedUntil", "Certified until"),
|
|
876
876
|
" ",
|
|
877
877
|
e.certificationExpiry ? new Date(e.certificationExpiry).toLocaleDateString() : "N/A"
|
|
878
878
|
]
|
|
879
879
|
}) : r("devportal.notCertified", "Not certified")
|
|
880
|
-
}] }), Z.verificationStatus !== "VERIFIED" && /* @__PURE__ */
|
|
880
|
+
}] }), Z.verificationStatus !== "VERIFIED" && /* @__PURE__ */ z("div", {
|
|
881
881
|
className: "mt-4 rounded-md border border-border-subtle p-4 space-y-3",
|
|
882
|
-
children: O ? /* @__PURE__ */
|
|
882
|
+
children: O ? /* @__PURE__ */ B("p", {
|
|
883
883
|
className: "text-sm text-status-success-text flex items-center gap-2",
|
|
884
|
-
children: [/* @__PURE__ */
|
|
885
|
-
}) : /* @__PURE__ */
|
|
886
|
-
/* @__PURE__ */
|
|
884
|
+
children: [/* @__PURE__ */ z(k, { size: 14 }), r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")]
|
|
885
|
+
}) : /* @__PURE__ */ B(R, { children: [
|
|
886
|
+
/* @__PURE__ */ z("p", {
|
|
887
887
|
className: "text-sm text-text-secondary",
|
|
888
888
|
children: r("devportal.requestVerificationHint", "Get your organization verified to build trust with users. Choose a verification method:")
|
|
889
889
|
}),
|
|
890
|
-
Z.verificationStatus === "PENDING" && /* @__PURE__ */
|
|
890
|
+
Z.verificationStatus === "PENDING" && /* @__PURE__ */ B("div", {
|
|
891
891
|
className: "rounded-md border border-border-subtle bg-bg-sunken/40 p-3 text-sm text-text-secondary",
|
|
892
892
|
children: [
|
|
893
893
|
r("devportal.pendingVerification", "Pending verification"),
|
|
@@ -895,61 +895,61 @@ var Y = {
|
|
|
895
895
|
Z.verificationRequestNotes ? ` · ${Z.verificationRequestNotes}` : ""
|
|
896
896
|
]
|
|
897
897
|
}),
|
|
898
|
-
Z.verificationStatus === "REJECTED" && Z.verificationRejectedReason && /* @__PURE__ */
|
|
898
|
+
Z.verificationStatus === "REJECTED" && Z.verificationRejectedReason && /* @__PURE__ */ z("div", {
|
|
899
899
|
className: "rounded-md border border-status-error-border bg-status-error-bg-subtle p-3 text-sm text-status-error-text",
|
|
900
900
|
children: Z.verificationRejectedReason
|
|
901
901
|
}),
|
|
902
|
-
Q.length > 0 && /* @__PURE__ */
|
|
902
|
+
Q.length > 0 && /* @__PURE__ */ B("div", {
|
|
903
903
|
className: "rounded-md border border-border-subtle bg-bg-sunken/40 p-3 text-sm text-text-secondary",
|
|
904
|
-
children: [/* @__PURE__ */
|
|
904
|
+
children: [/* @__PURE__ */ z("div", {
|
|
905
905
|
className: "font-medium text-text-primary",
|
|
906
906
|
children: r("devportal.completeBeforeVerification", "Complete these details before submitting for review")
|
|
907
|
-
}), /* @__PURE__ */
|
|
907
|
+
}), /* @__PURE__ */ z("ul", {
|
|
908
908
|
className: "mt-2 list-disc pl-5 space-y-1",
|
|
909
|
-
children: Q.map((e) => /* @__PURE__ */
|
|
909
|
+
children: Q.map((e) => /* @__PURE__ */ z("li", { children: e }, e))
|
|
910
910
|
})]
|
|
911
911
|
}),
|
|
912
|
-
Z.verificationStatus !== "PENDING" && /* @__PURE__ */
|
|
913
|
-
/* @__PURE__ */
|
|
912
|
+
Z.verificationStatus !== "PENDING" && /* @__PURE__ */ B(R, { children: [
|
|
913
|
+
/* @__PURE__ */ z("div", {
|
|
914
914
|
className: "flex gap-2 flex-wrap",
|
|
915
915
|
children: [
|
|
916
916
|
"domain",
|
|
917
917
|
"document",
|
|
918
918
|
"manual"
|
|
919
|
-
].map((e) => /* @__PURE__ */
|
|
919
|
+
].map((e) => /* @__PURE__ */ z("button", {
|
|
920
920
|
type: "button",
|
|
921
|
-
onClick: () =>
|
|
921
|
+
onClick: () => D(e),
|
|
922
922
|
className: `rounded-md border px-3 py-1 text-xs font-medium transition-colors ${E === e ? "bg-action-primary-bg text-action-primary-text border-primary" : "border-border-subtle hover:bg-bg-sunken"}`,
|
|
923
923
|
children: e === "domain" ? r("devportal.domainVerification", "Domain") : e === "document" ? r("devportal.documentVerification", "Document") : r("devportal.manualVerification", "Manual review")
|
|
924
924
|
}, e))
|
|
925
925
|
}),
|
|
926
|
-
E === "domain" ? /* @__PURE__ */
|
|
926
|
+
E === "domain" ? /* @__PURE__ */ z(_, {
|
|
927
927
|
label: r("devportal.domainVerification", "Domain"),
|
|
928
|
-
value:
|
|
929
|
-
onChange: (e) =>
|
|
928
|
+
value: V,
|
|
929
|
+
onChange: (e) => H(e.target.value),
|
|
930
930
|
placeholder: "example.com"
|
|
931
|
-
}) : E === "document" ? /* @__PURE__ */
|
|
931
|
+
}) : E === "document" ? /* @__PURE__ */ z(_, {
|
|
932
932
|
label: r("devportal.evidenceUrl", "Evidence URL"),
|
|
933
|
-
value:
|
|
934
|
-
onChange: (e) =>
|
|
933
|
+
value: I,
|
|
934
|
+
onChange: (e) => L(e.target.value),
|
|
935
935
|
placeholder: "https://..."
|
|
936
936
|
}) : null,
|
|
937
|
-
/* @__PURE__ */
|
|
937
|
+
/* @__PURE__ */ z(v, {
|
|
938
938
|
label: r("devportal.notes", "Notes"),
|
|
939
939
|
value: j,
|
|
940
|
-
onChange: (e) =>
|
|
940
|
+
onChange: (e) => N(e.target.value),
|
|
941
941
|
placeholder: "What should reviewers validate?"
|
|
942
942
|
}),
|
|
943
|
-
/* @__PURE__ */
|
|
943
|
+
/* @__PURE__ */ B("button", {
|
|
944
944
|
type: "button",
|
|
945
945
|
disabled: !ne,
|
|
946
946
|
onClick: () => void (async () => {
|
|
947
|
-
let t =
|
|
948
|
-
if (E === "domain" && !
|
|
947
|
+
let t = V.trim(), n = I.trim(), a = j.trim();
|
|
948
|
+
if (E === "domain" && !ee(t)) {
|
|
949
949
|
T(r("devportal.verification.errors.domainRequired", "Enter a valid domain like burdenoff.com"));
|
|
950
950
|
return;
|
|
951
951
|
}
|
|
952
|
-
if (E === "document" && !
|
|
952
|
+
if (E === "document" && !J(n)) {
|
|
953
953
|
T(r("devportal.verification.errors.evidenceUrlRequired", "Enter a valid evidence URL starting with http:// or https://"));
|
|
954
954
|
return;
|
|
955
955
|
}
|
|
@@ -957,7 +957,7 @@ var Y = {
|
|
|
957
957
|
T(r("devportal.verification.errors.notesRequired", "Add notes so the reviewer knows what to verify"));
|
|
958
958
|
return;
|
|
959
959
|
}
|
|
960
|
-
T(null),
|
|
960
|
+
T(null), h(null), X(!0);
|
|
961
961
|
try {
|
|
962
962
|
await re({ variables: {
|
|
963
963
|
id: e.id,
|
|
@@ -973,8 +973,8 @@ var Y = {
|
|
|
973
973
|
} }), await ae({ variables: {
|
|
974
974
|
id: e.id,
|
|
975
975
|
input: {
|
|
976
|
-
legalEntityName:
|
|
977
|
-
legalEntityType:
|
|
976
|
+
legalEntityName: l.legalEntityName.trim() || null,
|
|
977
|
+
legalEntityType: l.legalEntityType.trim() || null
|
|
978
978
|
}
|
|
979
979
|
} }), await se({ variables: {
|
|
980
980
|
id: e.id,
|
|
@@ -983,9 +983,9 @@ var Y = {
|
|
|
983
983
|
taxCountry: f.taxCountry.trim() || null
|
|
984
984
|
}
|
|
985
985
|
} });
|
|
986
|
-
let o = await
|
|
986
|
+
let o = await U({
|
|
987
987
|
gateway: "global",
|
|
988
|
-
query:
|
|
988
|
+
query: G,
|
|
989
989
|
variables: {
|
|
990
990
|
id: e.id,
|
|
991
991
|
method: E,
|
|
@@ -995,9 +995,9 @@ var Y = {
|
|
|
995
995
|
}
|
|
996
996
|
});
|
|
997
997
|
if (o.errors?.length) throw Error(o.errors[0]?.message || "Verification request failed");
|
|
998
|
-
|
|
998
|
+
A(!0), h(r("devportal.verificationRequested", "Verification request submitted. Our team will review and contact you.")), q((await U({
|
|
999
999
|
gateway: "global",
|
|
1000
|
-
query:
|
|
1000
|
+
query: W,
|
|
1001
1001
|
variables: { id: e.id }
|
|
1002
1002
|
})).data?.developerOrganization ?? null);
|
|
1003
1003
|
} catch (e) {
|
|
@@ -1007,10 +1007,10 @@ var Y = {
|
|
|
1007
1007
|
}
|
|
1008
1008
|
})(),
|
|
1009
1009
|
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",
|
|
1010
|
-
children: [Y ? /* @__PURE__ */
|
|
1010
|
+
children: [Y ? /* @__PURE__ */ z(M, {
|
|
1011
1011
|
size: 14,
|
|
1012
1012
|
className: "animate-spin"
|
|
1013
|
-
}) : /* @__PURE__ */
|
|
1013
|
+
}) : /* @__PURE__ */ z(F, { size: 14 }), r("devportal.requestVerification", "Request Verification")]
|
|
1014
1014
|
})
|
|
1015
1015
|
] })
|
|
1016
1016
|
] })
|