@replicated/portal-components 0.0.16 → 0.0.18
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/components/metadata/registry.json +2 -2
- package/components/metadata/registry.md +2 -2
- package/dist/actions/index.d.mts +1 -637
- package/dist/actions/index.d.ts +1 -637
- package/dist/actions/index.js +2 -1
- package/dist/actions/index.js.map +1 -1
- package/dist/airgap-instances.d.mts +5 -3
- package/dist/airgap-instances.d.ts +5 -3
- package/dist/airgap-instances.js +94 -5
- package/dist/airgap-instances.js.map +1 -1
- package/dist/esm/actions/index.js +2 -1
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/airgap-instances.js +90 -5
- package/dist/esm/airgap-instances.js.map +1 -1
- package/dist/esm/helm-install-wizard.js +28 -15
- package/dist/esm/helm-install-wizard.js.map +1 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/install-actions.js +54 -11
- package/dist/esm/install-actions.js.map +1 -1
- package/dist/esm/instance-card.js +79 -3
- package/dist/esm/instance-card.js.map +1 -1
- package/dist/esm/license-details.js +2 -1
- package/dist/esm/license-details.js.map +1 -1
- package/dist/esm/linux-install-wizard.js +90 -14
- package/dist/esm/linux-install-wizard.js.map +1 -1
- package/dist/esm/online-instance-list.js +90 -5
- package/dist/esm/online-instance-list.js.map +1 -1
- package/dist/esm/pending-installations.js +187 -103
- package/dist/esm/pending-installations.js.map +1 -1
- package/dist/esm/security-card.js +76 -16
- package/dist/esm/security-card.js.map +1 -1
- package/dist/esm/support-card.js +2 -1
- package/dist/esm/support-card.js.map +1 -1
- package/dist/esm/top-nav-user-menu.js +4 -2
- package/dist/esm/top-nav-user-menu.js.map +1 -1
- package/dist/esm/top-nav.js +2 -1
- package/dist/esm/top-nav.js.map +1 -1
- package/dist/esm/update-layout.js +2 -1
- package/dist/esm/update-layout.js.map +1 -1
- package/dist/esm/upload-support-bundle-modal.js +19 -19
- package/dist/esm/upload-support-bundle-modal.js.map +1 -1
- package/dist/esm/utils/index.js +2 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/helm-install-wizard.d.mts +5 -4
- package/dist/helm-install-wizard.d.ts +5 -4
- package/dist/helm-install-wizard.js +28 -15
- package/dist/helm-install-wizard.js.map +1 -1
- package/dist/index-DkjaogsF.d.mts +891 -0
- package/dist/index-DkjaogsF.d.ts +891 -0
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/install-actions.d.mts +2 -3
- package/dist/install-actions.d.ts +2 -3
- package/dist/install-actions.js +54 -10
- package/dist/install-actions.js.map +1 -1
- package/dist/install-card.d.mts +1 -1
- package/dist/install-card.d.ts +1 -1
- package/dist/instance-card.d.mts +5 -3
- package/dist/instance-card.d.ts +5 -3
- package/dist/instance-card.js +83 -3
- package/dist/instance-card.js.map +1 -1
- package/dist/license-card.d.mts +1 -1
- package/dist/license-card.d.ts +1 -1
- package/dist/license-details.js +2 -1
- package/dist/license-details.js.map +1 -1
- package/dist/linux-install-wizard.d.mts +6 -6
- package/dist/linux-install-wizard.d.ts +6 -6
- package/dist/linux-install-wizard.js +90 -14
- package/dist/linux-install-wizard.js.map +1 -1
- package/dist/online-instance-list.d.mts +5 -3
- package/dist/online-instance-list.d.ts +5 -3
- package/dist/online-instance-list.js +94 -5
- package/dist/online-instance-list.js.map +1 -1
- package/dist/pending-installations.d.mts +3 -3
- package/dist/pending-installations.d.ts +3 -3
- package/dist/pending-installations.js +186 -102
- package/dist/pending-installations.js.map +1 -1
- package/dist/security-card.d.mts +3 -2
- package/dist/security-card.d.ts +3 -2
- package/dist/security-card.js +76 -16
- package/dist/security-card.js.map +1 -1
- package/dist/styles.css +43 -0
- package/dist/support-bundles-card.d.mts +1 -1
- package/dist/support-bundles-card.d.ts +1 -1
- package/dist/support-card.js +2 -1
- package/dist/support-card.js.map +1 -1
- package/dist/top-nav-user-menu.d.mts +3 -1
- package/dist/top-nav-user-menu.d.ts +3 -1
- package/dist/top-nav-user-menu.js +4 -2
- package/dist/top-nav-user-menu.js.map +1 -1
- package/dist/top-nav.js +2 -1
- package/dist/top-nav.js.map +1 -1
- package/dist/update-layout.js +2 -1
- package/dist/update-layout.js.map +1 -1
- package/dist/upload-support-bundle-modal.d.mts +7 -3
- package/dist/upload-support-bundle-modal.d.ts +7 -3
- package/dist/upload-support-bundle-modal.js +19 -19
- package/dist/upload-support-bundle-modal.js.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/install-B19AaKF_.d.mts +0 -233
- package/dist/install-Bi1qJ8Bu.d.ts +0 -233
|
@@ -11,7 +11,9 @@ var TopNavChangeTeamButton = ({
|
|
|
11
11
|
displayLabel,
|
|
12
12
|
customers = [],
|
|
13
13
|
currentCustomerId,
|
|
14
|
-
onChangeTeam
|
|
14
|
+
onChangeTeam,
|
|
15
|
+
appName = "Application",
|
|
16
|
+
channelName = ""
|
|
15
17
|
}) => {
|
|
16
18
|
const [showChangeTeamModal, setShowChangeTeamModal] = useState(false);
|
|
17
19
|
const [selectedTeamId, setSelectedTeamId] = useState(currentCustomerId || "");
|
|
@@ -105,7 +107,7 @@ var TopNavChangeTeamButton = ({
|
|
|
105
107
|
)
|
|
106
108
|
] }),
|
|
107
109
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
108
|
-
/* @__PURE__ */ jsx("p", { className: "mb-4 text-sm text-gray-600", children:
|
|
110
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4 text-sm text-gray-600", children: channelName ? `${appName} ${channelName}` : appName }),
|
|
109
111
|
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: filteredCustomers.map((customer) => /* @__PURE__ */ jsxs(
|
|
110
112
|
"button",
|
|
111
113
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/top-nav-user-menu.tsx"],"names":[],"mappings":"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","file":"top-nav-user-menu.js","sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\n\nexport interface Customer {\n id: string;\n name: string;\n}\n\nexport interface TopNavChangeTeamButtonProps {\n displayLabel: string;\n customers?: Customer[];\n currentCustomerId?: string;\n onChangeTeam?: (customerId: string) => Promise<void>;\n}\n\nexport const TopNavChangeTeamButton = ({\n displayLabel,\n customers = [],\n currentCustomerId,\n onChangeTeam\n}: TopNavChangeTeamButtonProps) => {\n const [showChangeTeamModal, setShowChangeTeamModal] = useState(false);\n const [selectedTeamId, setSelectedTeamId] = useState(currentCustomerId || \"\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [isChanging, setIsChanging] = useState(false);\n\n const filteredCustomers = customers.filter((customer) =>\n customer.name.toLowerCase().includes(searchQuery.toLowerCase())\n );\n\n const handleChangeTeam = async () => {\n if (!selectedTeamId || !onChangeTeam) return;\n \n setIsChanging(true);\n try {\n await onChangeTeam(selectedTeamId);\n setShowChangeTeamModal(false);\n // Force a full page reload to ensure new JWT is used everywhere\n window.location.href = \"/\";\n } catch (error) {\n console.error(\"[top-nav-user-menu] Failed to change team:\", error);\n setIsChanging(false);\n }\n };\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => setShowChangeTeamModal(true)}\n className=\"block w-full px-4 py-2 text-left hover:bg-gray-100\"\n >\n Change team\n </button>\n\n {/* Change Team Modal */}\n {showChangeTeamModal && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50 p-4\">\n <div className=\"w-full max-w-2xl rounded-3xl bg-white p-8 shadow-xl\">\n <div className=\"mb-6 flex items-center justify-between\">\n <h2 className=\"text-3xl font-semibold text-gray-900\">Change team</h2>\n <button\n type=\"button\"\n onClick={() => setShowChangeTeamModal(false)}\n className=\"text-gray-400 hover:text-gray-600\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div className=\"space-y-6\">\n {customers.length > 3 && (\n <div className=\"relative\">\n <div className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-4\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"text-gray-400\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\n <path d=\"m21 21-4.35-4.35\"></path>\n </svg>\n </div>\n <input\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder=\"Search teams...\"\n className=\"portal-input w-full py-4 pl-12 pr-4 text-base\"\n />\n </div>\n )}\n\n <div>\n <p className=\"mb-4 text-sm text-gray-600\">autoci stable</p>\n <div className=\"space-y-3\">\n {filteredCustomers.map((customer) => (\n <button\n key={customer.id}\n type=\"button\"\n onClick={() => setSelectedTeamId(customer.id)}\n className={`flex w-full items-center gap-4 rounded-xl border-2 p-6 text-left transition ${\n selectedTeamId === customer.id\n ? \"border-blue-500 bg-blue-50\"\n : \"border-gray-200 bg-white hover:border-gray-300 hover:shadow-sm\"\n }`}\n >\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-blue-100\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"text-blue-600\"\n >\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n </div>\n <span className=\"text-lg font-medium text-gray-900\">{customer.name}</span>\n </button>\n ))}\n </div>\n </div>\n\n <div className=\"flex justify-end gap-3 pt-4\">\n <button\n type=\"button\"\n onClick={() => setShowChangeTeamModal(false)}\n className=\"rounded-xl border border-gray-300 px-6 py-3 text-base font-semibold text-gray-700 transition hover:bg-gray-50\"\n disabled={isChanging}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={handleChangeTeam}\n disabled={!selectedTeamId || isChanging || selectedTeamId === currentCustomerId}\n className=\"rounded-xl bg-indigo-600 px-6 py-3 text-base font-semibold text-white shadow-sm transition hover:bg-indigo-700 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {isChanging ? \"Changing...\" : \"Change team\"}\n </button>\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n );\n};\n\nTopNavChangeTeamButton.displayName = \"TopNavChangeTeamButton\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/top-nav-user-menu.tsx"],"names":[],"mappings":";;;;;;;;AAkBO,IAAM,yBAAyB,CAAC;AAAA,EACrC,YAAA;AAAA,EACA,YAAY,EAAC;AAAA,EACb,iBAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA,GAAU,aAAA;AAAA,EACV,WAAA,GAAc;AAChB,CAAA,KAAmC;AACjC,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,SAAS,KAAK,CAAA;AACpE,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,QAAA,CAAS,qBAAqB,EAAE,CAAA;AAC5E,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAElD,EAAA,MAAM,oBAAoB,SAAA,CAAU,MAAA;AAAA,IAAO,CAAC,aAC1C,QAAA,CAAS,IAAA,CAAK,aAAY,CAAE,QAAA,CAAS,WAAA,CAAY,WAAA,EAAa;AAAA,GAChE;AAEA,EAAA,MAAM,mBAAmB,YAAY;AACnC,IAAA,IAAI,CAAC,cAAA,IAAkB,CAAC,YAAA,EAAc;AAEtC,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAA,IAAI;AACF,MAAA,MAAM,aAAa,cAAc,CAAA;AACjC,MAAA,sBAAA,CAAuB,KAAK,CAAA;AAE5B,MAAA,MAAA,CAAO,SAAS,IAAA,GAAO,GAAA;AAAA,IACzB,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,8CAA8C,KAAK,CAAA;AACjE,MAAA,aAAA,CAAc,KAAK,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,sBAAA,CAAuB,IAAI,CAAA;AAAA,QAC1C,SAAA,EAAU,oDAAA;AAAA,QACX,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,IAGC,mBAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,kFACb,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qDAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sCAAA,EAAuC,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,wBAChE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,sBAAA,CAAuB,KAAK,CAAA;AAAA,YAC3C,SAAA,EAAU,mCAAA;AAAA,YAEV,QAAA,kBAAA,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,4BAAA;AAAA,gBACN,KAAA,EAAM,IAAA;AAAA,gBACN,MAAA,EAAO,IAAA;AAAA,gBACP,OAAA,EAAQ,WAAA;AAAA,gBACR,IAAA,EAAK,MAAA;AAAA,gBACL,MAAA,EAAO,cAAA;AAAA,gBACP,WAAA,EAAY,GAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe,OAAA;AAAA,gBAEf,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,CAAA;AAAA,kCACpC,GAAA,CAAC,UAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA;AACF,OAAA,EACF,CAAA;AAAA,sBAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA;AAAA,QAAA,SAAA,CAAU,MAAA,GAAS,CAAA,oBAClB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,UAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sEAAA,EACb,QAAA,kBAAA,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,4BAAA;AAAA,cACN,KAAA,EAAM,IAAA;AAAA,cACN,MAAA,EAAO,IAAA;AAAA,cACP,OAAA,EAAQ,WAAA;AAAA,cACR,IAAA,EAAK,MAAA;AAAA,cACL,MAAA,EAAO,cAAA;AAAA,cACP,WAAA,EAAY,GAAA;AAAA,cACZ,aAAA,EAAc,OAAA;AAAA,cACd,cAAA,EAAe,OAAA;AAAA,cACf,SAAA,EAAU,eAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,gCAC9B,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,kBAAA,EAAmB;AAAA;AAAA;AAAA,WAC7B,EACF,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,MAAA;AAAA,cACL,KAAA,EAAO,WAAA;AAAA,cACP,UAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC9C,WAAA,EAAY,iBAAA;AAAA,cACZ,SAAA,EAAU;AAAA;AAAA;AACZ,SAAA,EACF,CAAA;AAAA,6BAGD,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,WAAU,4BAAA,EAA8B,QAAA,EAAA,WAAA,GAAc,GAAG,OAAO,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,GAAK,OAAA,EAAQ,CAAA;AAAA,8BAC9F,KAAA,EAAA,EAAI,SAAA,EAAU,aACZ,QAAA,EAAA,iBAAA,CAAkB,GAAA,CAAI,CAAC,QAAA,qBACtB,IAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAM,iBAAA,CAAkB,QAAA,CAAS,EAAE,CAAA;AAAA,cAC5C,WAAW,CAAA,4EAAA,EACT,cAAA,KAAmB,QAAA,CAAS,EAAA,GACxB,+BACA,gEACN,CAAA,CAAA;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qEAAA,EACb,QAAA,kBAAA,IAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,KAAA,EAAM,4BAAA;AAAA,oBACN,KAAA,EAAM,IAAA;AAAA,oBACN,MAAA,EAAO,IAAA;AAAA,oBACP,OAAA,EAAQ,WAAA;AAAA,oBACR,IAAA,EAAK,MAAA;AAAA,oBACL,MAAA,EAAO,cAAA;AAAA,oBACP,WAAA,EAAY,GAAA;AAAA,oBACZ,aAAA,EAAc,OAAA;AAAA,oBACd,cAAA,EAAe,OAAA;AAAA,oBACf,SAAA,EAAU,eAAA;AAAA,oBAEV,QAAA,EAAA;AAAA,sCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,2CAAA,EAA4C,CAAA;AAAA,0CACnD,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,GAAE,GAAA,EAAI,CAAA;AAAA,sCAC5B,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA6B,CAAA;AAAA,sCACrC,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2BAAA,EAA4B;AAAA;AAAA;AAAA,iBACtC,EACF,CAAA;AAAA,gCACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EAAqC,mBAAS,IAAA,EAAK;AAAA;AAAA,aAAA;AAAA,YA5B9D,QAAA,CAAS;AAAA,WA8BjB,CAAA,EACH;AAAA,SAAA,EACF,CAAA;AAAA,wBAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAM,sBAAA,CAAuB,KAAK,CAAA;AAAA,cAC3C,SAAA,EAAU,+GAAA;AAAA,cACV,QAAA,EAAU,UAAA;AAAA,cACX,QAAA,EAAA;AAAA;AAAA,WAED;AAAA,0BACA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,gBAAA;AAAA,cACT,QAAA,EAAU,CAAC,cAAA,IAAkB,UAAA,IAAc,cAAA,KAAmB,iBAAA;AAAA,cAC9D,SAAA,EAAU,gKAAA;AAAA,cAET,uBAAa,aAAA,GAAgB;AAAA;AAAA;AAChC,SAAA,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEA,sBAAA,CAAuB,WAAA,GAAc,wBAAA","file":"top-nav-user-menu.js","sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\n\nexport interface Customer {\n id: string;\n name: string;\n}\n\nexport interface TopNavChangeTeamButtonProps {\n displayLabel: string;\n customers?: Customer[];\n currentCustomerId?: string;\n onChangeTeam?: (customerId: string) => Promise<void>;\n appName?: string;\n channelName?: string;\n}\n\nexport const TopNavChangeTeamButton = ({\n displayLabel,\n customers = [],\n currentCustomerId,\n onChangeTeam,\n appName = \"Application\",\n channelName = \"\"\n}: TopNavChangeTeamButtonProps) => {\n const [showChangeTeamModal, setShowChangeTeamModal] = useState(false);\n const [selectedTeamId, setSelectedTeamId] = useState(currentCustomerId || \"\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [isChanging, setIsChanging] = useState(false);\n\n const filteredCustomers = customers.filter((customer) =>\n customer.name.toLowerCase().includes(searchQuery.toLowerCase())\n );\n\n const handleChangeTeam = async () => {\n if (!selectedTeamId || !onChangeTeam) return;\n \n setIsChanging(true);\n try {\n await onChangeTeam(selectedTeamId);\n setShowChangeTeamModal(false);\n // Force a full page reload to ensure new JWT is used everywhere\n window.location.href = \"/\";\n } catch (error) {\n console.error(\"[top-nav-user-menu] Failed to change team:\", error);\n setIsChanging(false);\n }\n };\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => setShowChangeTeamModal(true)}\n className=\"block w-full px-4 py-2 text-left hover:bg-gray-100\"\n >\n Change team\n </button>\n\n {/* Change Team Modal */}\n {showChangeTeamModal && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50 p-4\">\n <div className=\"w-full max-w-2xl rounded-3xl bg-white p-8 shadow-xl\">\n <div className=\"mb-6 flex items-center justify-between\">\n <h2 className=\"text-3xl font-semibold text-gray-900\">Change team</h2>\n <button\n type=\"button\"\n onClick={() => setShowChangeTeamModal(false)}\n className=\"text-gray-400 hover:text-gray-600\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <div className=\"space-y-6\">\n {customers.length > 3 && (\n <div className=\"relative\">\n <div className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-4\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"text-gray-400\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\n <path d=\"m21 21-4.35-4.35\"></path>\n </svg>\n </div>\n <input\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder=\"Search teams...\"\n className=\"portal-input w-full py-4 pl-12 pr-4 text-base\"\n />\n </div>\n )}\n\n <div>\n <p className=\"mb-4 text-sm text-gray-600\">{channelName ? `${appName} ${channelName}` : appName}</p>\n <div className=\"space-y-3\">\n {filteredCustomers.map((customer) => (\n <button\n key={customer.id}\n type=\"button\"\n onClick={() => setSelectedTeamId(customer.id)}\n className={`flex w-full items-center gap-4 rounded-xl border-2 p-6 text-left transition ${\n selectedTeamId === customer.id\n ? \"border-blue-500 bg-blue-50\"\n : \"border-gray-200 bg-white hover:border-gray-300 hover:shadow-sm\"\n }`}\n >\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-blue-100\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"text-blue-600\"\n >\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n </div>\n <span className=\"text-lg font-medium text-gray-900\">{customer.name}</span>\n </button>\n ))}\n </div>\n </div>\n\n <div className=\"flex justify-end gap-3 pt-4\">\n <button\n type=\"button\"\n onClick={() => setShowChangeTeamModal(false)}\n className=\"rounded-xl border border-gray-300 px-6 py-3 text-base font-semibold text-gray-700 transition hover:bg-gray-50\"\n disabled={isChanging}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={handleChangeTeam}\n disabled={!selectedTeamId || isChanging || selectedTeamId === currentCustomerId}\n className=\"rounded-xl bg-indigo-600 px-6 py-3 text-base font-semibold text-white shadow-sm transition hover:bg-indigo-700 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {isChanging ? \"Changing...\" : \"Change team\"}\n </button>\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n );\n};\n\nTopNavChangeTeamButton.displayName = \"TopNavChangeTeamButton\";\n"]}
|
package/dist/esm/top-nav.js
CHANGED
|
@@ -43,7 +43,8 @@ var fetchCustomBrandingImpl = async () => {
|
|
|
43
43
|
title: payload.appName,
|
|
44
44
|
customColor1: payload.primaryColor,
|
|
45
45
|
customColor2: payload.secondaryColor,
|
|
46
|
-
favicon: payload.faviconUrl
|
|
46
|
+
favicon: payload.faviconUrl,
|
|
47
|
+
supportPortalLink: payload.supportPortalLink || ""
|
|
47
48
|
};
|
|
48
49
|
const brandingData = Buffer.from(JSON.stringify(brandingObject)).toString("base64");
|
|
49
50
|
return {
|