@greatapps/common 1.1.782 → 1.1.785
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/components/layouts/AppMobileNavBar.mjs +5 -64
- package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
- package/dist/components/layouts/AppNavBar.mjs +0 -2
- package/dist/components/layouts/AppNavBar.mjs.map +1 -1
- package/dist/components/layouts/NavBar.mjs +52 -109
- package/dist/components/layouts/NavBar.mjs.map +1 -1
- package/dist/components/modals/cards/AddCardModal.mjs +3 -2
- package/dist/components/modals/cards/AddCardModal.mjs.map +1 -1
- package/dist/i18n/messages/en-us.mjs +1 -3
- package/dist/i18n/messages/en-us.mjs.map +1 -1
- package/dist/i18n/messages/es-es.mjs +1 -3
- package/dist/i18n/messages/es-es.mjs.map +1 -1
- package/dist/i18n/messages/pt-br.mjs +1 -3
- package/dist/i18n/messages/pt-br.mjs.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/modules/subscriptions/actions/update-subscription-payment.action.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/update-subscription-payment.hook.mjs +10 -2
- package/dist/modules/subscriptions/hooks/update-subscription-payment.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/services/subscriptions.service.mjs +12 -1
- package/dist/modules/subscriptions/services/subscriptions.service.mjs.map +1 -1
- package/dist/modules/subscriptions/types/subscription.type.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/layouts/AppMobileNavBar.tsx +6 -90
- package/src/components/layouts/AppNavBar.tsx +1 -5
- package/src/components/layouts/NavBar.tsx +66 -158
- package/src/components/modals/cards/AddCardModal.tsx +15 -2
- package/src/i18n/messages/en-us.ts +0 -2
- package/src/i18n/messages/es-es.ts +0 -2
- package/src/i18n/messages/pt-br.ts +0 -2
- package/src/index.ts +1 -0
- package/src/modules/plans/hooks/use-plan-by-id.hook.ts +1 -1
- package/src/modules/subscriptions/actions/update-subscription-payment.action.ts +6 -1
- package/src/modules/subscriptions/hooks/update-subscription-payment.hook.ts +21 -3
- package/src/modules/subscriptions/services/subscriptions.service.ts +46 -4
- package/src/modules/subscriptions/types/subscription.type.ts +27 -0
- package/dist/components/layouts/GreatDomainIcon.mjs +0 -40
- package/dist/components/layouts/GreatDomainIcon.mjs.map +0 -1
- package/src/components/layouts/GreatDomainIcon.tsx +0 -43
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import Image from "next/image";
|
|
4
|
-
import { useTranslations } from "next-intl";
|
|
5
4
|
import { IconMenu2, IconX } from "@tabler/icons-react";
|
|
6
5
|
import { ProfilePopover } from "./ProfilePopover";
|
|
7
|
-
import { GreatDomainIcon } from "./GreatDomainIcon";
|
|
8
6
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
|
|
9
7
|
import { useMobileNavbarSheet } from "../../store/useMobileNavbarSheet";
|
|
10
8
|
import {
|
|
@@ -16,12 +14,10 @@ function AppMobileNavBar({
|
|
|
16
14
|
activeApp,
|
|
17
15
|
onLogoClick,
|
|
18
16
|
onAppIconClick,
|
|
19
|
-
onDomainIconClick,
|
|
20
17
|
extraLeftSlot,
|
|
21
18
|
menuItems = [],
|
|
22
19
|
showMenuToggle = true
|
|
23
20
|
}) {
|
|
24
|
-
const translate = useTranslations();
|
|
25
21
|
const { isOpen, toggle } = useMobileNavbarSheet();
|
|
26
22
|
const { whitelabel } = useWhitelabel();
|
|
27
23
|
const isDefaultWl = useIsDefaultWhitelabel();
|
|
@@ -29,7 +25,6 @@ function AppMobileNavBar({
|
|
|
29
25
|
const wlName = whitelabel?.name || "Great";
|
|
30
26
|
const isGappsActive = activeApp === "gapps";
|
|
31
27
|
const isGpagesActive = activeApp === "gpages";
|
|
32
|
-
const isGdomainActive = activeApp === "gdomain";
|
|
33
28
|
const wlIcon = whitelabel?.secondary_logo ? /* @__PURE__ */ jsx(
|
|
34
29
|
Image,
|
|
35
30
|
{
|
|
@@ -70,8 +65,8 @@ function AppMobileNavBar({
|
|
|
70
65
|
}
|
|
71
66
|
);
|
|
72
67
|
return /* @__PURE__ */ jsxs("div", { className: "fixed top-0 left-0 right-0 flex md:hidden items-center justify-between p-4 bg-white z-50 border-b border-gray-200", children: [
|
|
73
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5
|
|
74
|
-
/* @__PURE__ */ jsxs("div", { className: "relative
|
|
68
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
69
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
75
70
|
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
76
71
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
77
72
|
"div",
|
|
@@ -106,7 +101,7 @@ function AppMobileNavBar({
|
|
|
106
101
|
}
|
|
107
102
|
)
|
|
108
103
|
] }),
|
|
109
|
-
/* @__PURE__ */ jsxs("div", { className: "relative
|
|
104
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
110
105
|
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
111
106
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
112
107
|
"div",
|
|
@@ -165,63 +160,9 @@ function AppMobileNavBar({
|
|
|
165
160
|
}
|
|
166
161
|
)
|
|
167
162
|
] }),
|
|
168
|
-
|
|
169
|
-
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
170
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
171
|
-
"div",
|
|
172
|
-
{
|
|
173
|
-
"aria-label": isDefaultWl ? translate("common.layout.navbar.greatDomain") : translate("common.layout.navbar.domains"),
|
|
174
|
-
className: cn(
|
|
175
|
-
"size-10 rounded-[10px] flex items-center justify-center border-2 ring-2 transition-colors duration-300",
|
|
176
|
-
isGdomainActive ? isDefaultWl ? "bg-[#EDE9FE] border-white ring-[#C092FF]" : "border-white ring-transparent" : isDefaultWl ? "hover:bg-gray-100 border-transparent ring-transparent" : "border-transparent ring-transparent",
|
|
177
|
-
"cursor-pointer"
|
|
178
|
-
),
|
|
179
|
-
style: !isDefaultWl ? {
|
|
180
|
-
backgroundColor: primaryColor,
|
|
181
|
-
boxShadow: isGdomainActive ? `0 0 0 2px ${primaryColor}40` : void 0,
|
|
182
|
-
opacity: !isGdomainActive ? 0.2 : void 0
|
|
183
|
-
} : void 0,
|
|
184
|
-
onClick: onDomainIconClick,
|
|
185
|
-
children: isDefaultWl ? /* @__PURE__ */ jsx(GreatDomainIcon, { active: isGdomainActive }) : /* @__PURE__ */ jsxs(
|
|
186
|
-
"svg",
|
|
187
|
-
{
|
|
188
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
189
|
-
width: "24",
|
|
190
|
-
height: "24",
|
|
191
|
-
viewBox: "0 0 24 24",
|
|
192
|
-
fill: "none",
|
|
193
|
-
stroke: "white",
|
|
194
|
-
strokeWidth: "2",
|
|
195
|
-
strokeLinecap: "round",
|
|
196
|
-
strokeLinejoin: "round",
|
|
197
|
-
children: [
|
|
198
|
-
/* @__PURE__ */ jsx("path", { d: "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" }),
|
|
199
|
-
/* @__PURE__ */ jsx("path", { d: "M3.6 9h16.8" }),
|
|
200
|
-
/* @__PURE__ */ jsx("path", { d: "M3.6 15h16.8" }),
|
|
201
|
-
/* @__PURE__ */ jsx("path", { d: "M11.5 3a17 17 0 0 0 0 18" }),
|
|
202
|
-
/* @__PURE__ */ jsx("path", { d: "M12.5 3a17 17 0 0 1 0 18" })
|
|
203
|
-
]
|
|
204
|
-
}
|
|
205
|
-
)
|
|
206
|
-
}
|
|
207
|
-
) }),
|
|
208
|
-
/* @__PURE__ */ jsx(TooltipContent, { side: "bottom", children: isDefaultWl ? translate("common.layout.navbar.greatDomain") : translate("common.layout.navbar.domains") })
|
|
209
|
-
] }),
|
|
210
|
-
/* @__PURE__ */ jsx(
|
|
211
|
-
"div",
|
|
212
|
-
{
|
|
213
|
-
className: cn(
|
|
214
|
-
"absolute -bottom-[17px] left-1/2 -translate-x-1/2 w-5 h-[3px] rounded-t-xl transition-opacity duration-300",
|
|
215
|
-
isDefaultWl ? "bg-[#984DFF]" : "",
|
|
216
|
-
isGdomainActive ? "opacity-100" : "opacity-0"
|
|
217
|
-
),
|
|
218
|
-
style: !isDefaultWl ? { backgroundColor: primaryColor } : void 0
|
|
219
|
-
}
|
|
220
|
-
)
|
|
221
|
-
] }) : null,
|
|
222
|
-
extraLeftSlot ? /* @__PURE__ */ jsx("div", { className: "min-w-0 shrink [&>*]:max-w-full", children: extraLeftSlot }) : null
|
|
163
|
+
extraLeftSlot
|
|
223
164
|
] }),
|
|
224
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5
|
|
165
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
225
166
|
/* @__PURE__ */ jsx(
|
|
226
167
|
ProfilePopover,
|
|
227
168
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layouts/AppMobileNavBar.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport Image from \"next/image\";\nimport { useTranslations } from \"next-intl\";\nimport { IconMenu2, IconX } from \"@tabler/icons-react\";\nimport { ProfilePopover } from \"./ProfilePopover\";\nimport { GreatDomainIcon } from \"./GreatDomainIcon\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\";\nimport { useMobileNavbarSheet } from \"../../store/useMobileNavbarSheet\";\nimport {\n useWhitelabel,\n useIsDefaultWhitelabel,\n} from \"../../providers/whitelabel.provider\";\nimport { cn } from \"../../infra/utils/clsx\";\nimport type { ProfileMenuItem } from \"./ProfilePopover\";\n\nexport interface AppMobileNavBarProps {\n /** Which app is currently active — controls which icon gets the indicator */\n activeApp?: \"gapps\" | \"gpages\" | \"gdomain\";\n /** Called when the GreatApps logo is clicked */\n onLogoClick?: () => void;\n /** Called when the app icon (e.g. GreatPages) is clicked */\n onAppIconClick?: () => void;\n /** Called when the GreatDomain icon is clicked; without it the icon is not rendered (app flag) */\n onDomainIconClick?: () => void;\n /** Extra slot rendered after the app icon (e.g. project selector) */\n extraLeftSlot?: ReactNode;\n menuItems?: ProfileMenuItem[];\n showMenuToggle?: boolean;\n}\n\nexport function AppMobileNavBar({\n activeApp,\n onLogoClick,\n onAppIconClick,\n onDomainIconClick,\n extraLeftSlot,\n menuItems = [],\n showMenuToggle = true,\n}: AppMobileNavBarProps) {\n const translate = useTranslations();\n const { isOpen, toggle } = useMobileNavbarSheet();\n const { whitelabel } = useWhitelabel();\n const isDefaultWl = useIsDefaultWhitelabel();\n const primaryColor = whitelabel?.general?.primary_color;\n const wlName = whitelabel?.name || \"Great\";\n\n const isGappsActive = activeApp === \"gapps\";\n const isGpagesActive = activeApp === \"gpages\";\n const isGdomainActive = activeApp === \"gdomain\";\n\n const wlIcon = whitelabel?.secondary_logo ? (\n <Image\n className=\"size-7 object-contain\"\n src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${whitelabel.secondary_logo}`}\n alt={`${wlName} Logo`}\n width={28}\n height={28}\n />\n ) : (\n <div\n className={cn(\n \"size-10 rounded-lg flex items-center justify-center transition-opacity duration-300\",\n !isGappsActive && \"opacity-20\",\n )}\n style={{ backgroundColor: primaryColor }}\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n </svg>\n </div>\n );\n\n return (\n <div className=\"fixed top-0 left-0 right-0 flex md:hidden items-center justify-between p-4 bg-white z-50 border-b border-gray-200\">\n <div className=\"flex items-center gap-1.5 min-w-0\">\n {/* GreatApps logo */}\n <div className=\"relative shrink-0\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n className={cn(\n \"flex items-center justify-center\",\n onLogoClick ? \"cursor-pointer\" : \"\",\n )}\n onClick={onLogoClick}\n >\n {isDefaultWl ? (\n <div className=\"size-10 flex items-center justify-center rounded-lg\">\n <Image\n src=\"/icons/great-icon.svg\"\n alt=\"Great Icon\"\n width={28}\n height={28}\n />\n </div>\n ) : (\n wlIcon\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{wlName}</TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -bottom-[17px] left-1/2 -translate-x-1/2 w-5 h-[3px] rounded-t-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-gray-950\" : \"\",\n isGappsActive ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n\n {/* GreatPages icon */}\n <div className=\"relative shrink-0\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n className={cn(\n \"size-10 rounded-lg flex items-center justify-center border-2 ring-2 transition-colors duration-300\",\n isGpagesActive\n ? isDefaultWl\n ? \"bg-cyan-100 border-white ring-cyan-300\"\n : \"border-white ring-transparent\"\n : isDefaultWl\n ? \"hover:bg-gray-100 border-transparent ring-transparent\"\n : \"border-transparent ring-transparent\",\n onAppIconClick ? \"cursor-pointer\" : \"\",\n )}\n style={\n !isDefaultWl\n ? {\n backgroundColor: primaryColor,\n boxShadow: isGpagesActive\n ? `0 0 0 2px ${primaryColor}40`\n : undefined,\n opacity: !isGpagesActive ? 0.2 : undefined,\n }\n : undefined\n }\n onClick={onAppIconClick}\n >\n {isDefaultWl ? (\n <Image\n src=\"/icons/icon-navbar.svg\"\n alt=\"GreatPages\"\n width={24}\n height={24}\n />\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 8h16\" />\n <path d=\"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12\" />\n <path d=\"M8 4v4\" />\n </svg>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {isDefaultWl ? \"GreatPages\" : \"Páginas\"}\n </TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -bottom-[17px] left-1/2 -translate-x-1/2 w-5 h-[3px] rounded-t-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-cyan-300\" : \"\",\n isGpagesActive ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n\n {/* GreatDomain icon */}\n {onDomainIconClick ? (\n <div className=\"relative shrink-0\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n aria-label={\n isDefaultWl\n ? translate(\"common.layout.navbar.greatDomain\")\n : translate(\"common.layout.navbar.domains\")\n }\n className={cn(\n \"size-10 rounded-[10px] flex items-center justify-center border-2 ring-2 transition-colors duration-300\",\n isGdomainActive\n ? isDefaultWl\n ? \"bg-[#EDE9FE] border-white ring-[#C092FF]\"\n : \"border-white ring-transparent\"\n : isDefaultWl\n ? \"hover:bg-gray-100 border-transparent ring-transparent\"\n : \"border-transparent ring-transparent\",\n \"cursor-pointer\",\n )}\n style={\n !isDefaultWl\n ? {\n backgroundColor: primaryColor,\n boxShadow: isGdomainActive\n ? `0 0 0 2px ${primaryColor}40`\n : undefined,\n opacity: !isGdomainActive ? 0.2 : undefined,\n }\n : undefined\n }\n onClick={onDomainIconClick}\n >\n {isDefaultWl ? (\n <GreatDomainIcon active={isGdomainActive} />\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" />\n <path d=\"M3.6 9h16.8\" />\n <path d=\"M3.6 15h16.8\" />\n <path d=\"M11.5 3a17 17 0 0 0 0 18\" />\n <path d=\"M12.5 3a17 17 0 0 1 0 18\" />\n </svg>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {isDefaultWl\n ? translate(\"common.layout.navbar.greatDomain\")\n : translate(\"common.layout.navbar.domains\")}\n </TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -bottom-[17px] left-1/2 -translate-x-1/2 w-5 h-[3px] rounded-t-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-[#984DFF]\" : \"\",\n isGdomainActive ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n ) : null}\n\n {extraLeftSlot ? (\n <div className=\"min-w-0 shrink [&>*]:max-w-full\">{extraLeftSlot}</div>\n ) : null}\n </div>\n <div className=\"flex items-center gap-1.5 shrink-0\">\n <ProfilePopover\n side=\"bottom\"\n align=\"end\"\n contentClassName=\"\"\n menuItems={menuItems}\n />\n {showMenuToggle && (\n <button\n className=\"size-10 flex items-center justify-center border border-zinc-200 rounded-lg bg-white cursor-pointer\"\n onClick={toggle}\n >\n {isOpen ? (\n <IconX size={18} className=\"text-zinc-950\" />\n ) : (\n <IconMenu2 size={18} className=\"text-zinc-950\" />\n )}\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/layouts/AppMobileNavBar.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport Image from \"next/image\";\nimport { IconMenu2, IconX } from \"@tabler/icons-react\";\nimport { ProfilePopover } from \"./ProfilePopover\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\";\nimport { useMobileNavbarSheet } from \"../../store/useMobileNavbarSheet\";\nimport {\n useWhitelabel,\n useIsDefaultWhitelabel,\n} from \"../../providers/whitelabel.provider\";\nimport { cn } from \"../../infra/utils/clsx\";\nimport type { ProfileMenuItem } from \"./ProfilePopover\";\n\nexport interface AppMobileNavBarProps {\n /** Which app is currently active — controls which icon gets the indicator */\n activeApp?: \"gapps\" | \"gpages\";\n /** Called when the GreatApps logo is clicked */\n onLogoClick?: () => void;\n /** Called when the app icon (e.g. GreatPages) is clicked */\n onAppIconClick?: () => void;\n /** Extra slot rendered after the app icon (e.g. project selector) */\n extraLeftSlot?: ReactNode;\n menuItems?: ProfileMenuItem[];\n showMenuToggle?: boolean;\n}\n\nexport function AppMobileNavBar({\n activeApp,\n onLogoClick,\n onAppIconClick,\n extraLeftSlot,\n menuItems = [],\n showMenuToggle = true,\n}: AppMobileNavBarProps) {\n const { isOpen, toggle } = useMobileNavbarSheet();\n const { whitelabel } = useWhitelabel();\n const isDefaultWl = useIsDefaultWhitelabel();\n const primaryColor = whitelabel?.general?.primary_color;\n const wlName = whitelabel?.name || \"Great\";\n\n const isGappsActive = activeApp === \"gapps\";\n const isGpagesActive = activeApp === \"gpages\";\n\n const wlIcon = whitelabel?.secondary_logo ? (\n <Image\n className=\"size-7 object-contain\"\n src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${whitelabel.secondary_logo}`}\n alt={`${wlName} Logo`}\n width={28}\n height={28}\n />\n ) : (\n <div\n className={cn(\n \"size-10 rounded-lg flex items-center justify-center transition-opacity duration-300\",\n !isGappsActive && \"opacity-20\",\n )}\n style={{ backgroundColor: primaryColor }}\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n </svg>\n </div>\n );\n\n return (\n <div className=\"fixed top-0 left-0 right-0 flex md:hidden items-center justify-between p-4 bg-white z-50 border-b border-gray-200\">\n <div className=\"flex items-center gap-1.5\">\n {/* GreatApps logo */}\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n className={cn(\n \"flex items-center justify-center\",\n onLogoClick ? \"cursor-pointer\" : \"\",\n )}\n onClick={onLogoClick}\n >\n {isDefaultWl ? (\n <div className=\"size-10 flex items-center justify-center rounded-lg\">\n <Image\n src=\"/icons/great-icon.svg\"\n alt=\"Great Icon\"\n width={28}\n height={28}\n />\n </div>\n ) : (\n wlIcon\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{wlName}</TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -bottom-[17px] left-1/2 -translate-x-1/2 w-5 h-[3px] rounded-t-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-gray-950\" : \"\",\n isGappsActive ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n\n {/* GreatPages icon */}\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n className={cn(\n \"size-10 rounded-lg flex items-center justify-center border-2 ring-2 transition-colors duration-300\",\n isGpagesActive\n ? isDefaultWl\n ? \"bg-cyan-100 border-white ring-cyan-300\"\n : \"border-white ring-transparent\"\n : isDefaultWl\n ? \"hover:bg-gray-100 border-transparent ring-transparent\"\n : \"border-transparent ring-transparent\",\n onAppIconClick ? \"cursor-pointer\" : \"\",\n )}\n style={\n !isDefaultWl\n ? {\n backgroundColor: primaryColor,\n boxShadow: isGpagesActive\n ? `0 0 0 2px ${primaryColor}40`\n : undefined,\n opacity: !isGpagesActive ? 0.2 : undefined,\n }\n : undefined\n }\n onClick={onAppIconClick}\n >\n {isDefaultWl ? (\n <Image\n src=\"/icons/icon-navbar.svg\"\n alt=\"GreatPages\"\n width={24}\n height={24}\n />\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 8h16\" />\n <path d=\"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12\" />\n <path d=\"M8 4v4\" />\n </svg>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {isDefaultWl ? \"GreatPages\" : \"Páginas\"}\n </TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -bottom-[17px] left-1/2 -translate-x-1/2 w-5 h-[3px] rounded-t-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-cyan-300\" : \"\",\n isGpagesActive ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n\n {extraLeftSlot}\n </div>\n <div className=\"flex items-center gap-1.5\">\n <ProfilePopover\n side=\"bottom\"\n align=\"end\"\n contentClassName=\"\"\n menuItems={menuItems}\n />\n {showMenuToggle && (\n <button\n className=\"size-10 flex items-center justify-center border border-zinc-200 rounded-lg bg-white cursor-pointer\"\n onClick={toggle}\n >\n {isOpen ? (\n <IconX size={18} className=\"text-zinc-950\" />\n ) : (\n <IconMenu2 size={18} className=\"text-zinc-950\" />\n )}\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -6,7 +6,6 @@ import { NotificationsPopover } from "./NotificationsPopover";
|
|
|
6
6
|
function AppNavBar({
|
|
7
7
|
logoHref,
|
|
8
8
|
appIconHref,
|
|
9
|
-
domainIconHref,
|
|
10
9
|
activeApp,
|
|
11
10
|
showExpandButton = false,
|
|
12
11
|
onExpandClick,
|
|
@@ -18,7 +17,6 @@ function AppNavBar({
|
|
|
18
17
|
{
|
|
19
18
|
logoHref,
|
|
20
19
|
appIconHref,
|
|
21
|
-
domainIconHref,
|
|
22
20
|
activeApp,
|
|
23
21
|
showExpandButton,
|
|
24
22
|
onExpandClick,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layouts/AppNavBar.tsx"],"sourcesContent":["\"use client\";\n\nimport { NavBar } from \"./NavBar\";\nimport { ProfilePopover } from \"./ProfilePopover\";\nimport { NotificationsPopover } from \"./NotificationsPopover\";\nimport type { ProfileMenuItem } from \"./ProfilePopover\";\n\nexport interface AppNavBarProps {\n logoHref: string;\n appIconHref: string;\n /**
|
|
1
|
+
{"version":3,"sources":["../../../src/components/layouts/AppNavBar.tsx"],"sourcesContent":["\"use client\";\n\nimport { NavBar } from \"./NavBar\";\nimport { ProfilePopover } from \"./ProfilePopover\";\nimport { NotificationsPopover } from \"./NotificationsPopover\";\nimport type { ProfileMenuItem } from \"./ProfilePopover\";\n\nexport interface AppNavBarProps {\n logoHref: string;\n appIconHref: string;\n /** Which app is currently active — controls which icon gets the indicator */\n activeApp?: \"gapps\" | \"gpages\";\n showExpandButton?: boolean;\n onExpandClick?: () => void;\n menuItems?: ProfileMenuItem[];\n onNotificationsViewAll?: () => void;\n}\n\nexport function AppNavBar({\n logoHref,\n appIconHref,\n activeApp,\n showExpandButton = false,\n onExpandClick,\n menuItems = [],\n onNotificationsViewAll,\n}: AppNavBarProps) {\n return (\n <NavBar\n logoHref={logoHref}\n appIconHref={appIconHref}\n activeApp={activeApp}\n showExpandButton={showExpandButton}\n onExpandClick={onExpandClick}\n >\n <NotificationsPopover onViewAll={onNotificationsViewAll} />\n <ProfilePopover menuItems={menuItems} />\n </NavBar>\n );\n}\n"],"mappings":";AA4BI,SAOE,KAPF;AA1BJ,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B;AAc9B,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EACA,YAAY,CAAC;AAAA,EACb;AACF,GAAmB;AACjB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,4BAAC,wBAAqB,WAAW,wBAAwB;AAAA,QACzD,oBAAC,kBAAe,WAAsB;AAAA;AAAA;AAAA,EACxC;AAEJ;","names":[]}
|
|
@@ -5,7 +5,6 @@ import Link from "next/link";
|
|
|
5
5
|
import { useTranslations } from "next-intl";
|
|
6
6
|
import { IconChevronRight } from "@tabler/icons-react";
|
|
7
7
|
import { Separator } from "../ui/data-display/Separator";
|
|
8
|
-
import { GreatDomainIcon } from "./GreatDomainIcon";
|
|
9
8
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
|
|
10
9
|
import {
|
|
11
10
|
useDesktopSidebarStore,
|
|
@@ -19,7 +18,6 @@ import { cn } from "../../infra/utils/clsx";
|
|
|
19
18
|
function NavBar({
|
|
20
19
|
logoHref,
|
|
21
20
|
appIconHref,
|
|
22
|
-
domainIconHref,
|
|
23
21
|
activeApp,
|
|
24
22
|
showExpandButton = false,
|
|
25
23
|
onExpandClick,
|
|
@@ -131,118 +129,63 @@ function NavBar({
|
|
|
131
129
|
/* @__PURE__ */ jsx(TooltipContent, { side: "right", children: translate("common.layout.navbar.expandMenu") })
|
|
132
130
|
] })
|
|
133
131
|
] }),
|
|
134
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
135
|
-
/* @__PURE__ */ jsxs(
|
|
136
|
-
/* @__PURE__ */
|
|
137
|
-
|
|
138
|
-
Link,
|
|
139
|
-
{
|
|
140
|
-
href: appIconHref,
|
|
141
|
-
className: cn(
|
|
142
|
-
"size-10 rounded-lg cursor-pointer flex items-center justify-center border-2 ring-2 transition-colors duration-300",
|
|
143
|
-
activeApp === "gpages" ? isDefaultWl ? "bg-cyan-100 border-white ring-cyan-300" : "border-white ring-transparent" : isDefaultWl ? "hover:bg-gray-100 border-transparent ring-transparent" : "border-transparent ring-transparent"
|
|
144
|
-
),
|
|
145
|
-
style: !isDefaultWl ? {
|
|
146
|
-
backgroundColor: primaryColor,
|
|
147
|
-
boxShadow: activeApp === "gpages" ? `0 0 0 2px ${primaryColor}40` : void 0,
|
|
148
|
-
opacity: activeApp !== "gpages" ? 0.2 : void 0
|
|
149
|
-
} : void 0,
|
|
150
|
-
children: isDefaultWl ? /* @__PURE__ */ jsx(
|
|
151
|
-
Image,
|
|
152
|
-
{
|
|
153
|
-
src: "/icons/icon-navbar.svg",
|
|
154
|
-
alt: "GreatPages",
|
|
155
|
-
width: 24,
|
|
156
|
-
height: 24
|
|
157
|
-
}
|
|
158
|
-
) : /* @__PURE__ */ jsxs(
|
|
159
|
-
"svg",
|
|
160
|
-
{
|
|
161
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
162
|
-
width: "24",
|
|
163
|
-
height: "24",
|
|
164
|
-
viewBox: "0 0 24 24",
|
|
165
|
-
fill: "none",
|
|
166
|
-
stroke: "white",
|
|
167
|
-
strokeWidth: "2",
|
|
168
|
-
strokeLinecap: "round",
|
|
169
|
-
strokeLinejoin: "round",
|
|
170
|
-
children: [
|
|
171
|
-
/* @__PURE__ */ jsx("path", { d: "M4 8h16" }),
|
|
172
|
-
/* @__PURE__ */ jsx("path", { d: "M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12" }),
|
|
173
|
-
/* @__PURE__ */ jsx("path", { d: "M8 4v4" })
|
|
174
|
-
]
|
|
175
|
-
}
|
|
176
|
-
)
|
|
177
|
-
}
|
|
178
|
-
) }),
|
|
179
|
-
/* @__PURE__ */ jsx(TooltipContent, { side: "right", children: isDefaultWl ? translate("common.layout.navbar.greatPages") : translate("common.layout.navbar.pages") })
|
|
180
|
-
] }),
|
|
181
|
-
/* @__PURE__ */ jsx(
|
|
182
|
-
"div",
|
|
132
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
133
|
+
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
134
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
135
|
+
Link,
|
|
183
136
|
{
|
|
137
|
+
href: appIconHref,
|
|
184
138
|
className: cn(
|
|
185
|
-
"
|
|
186
|
-
isDefaultWl ? "bg-cyan-300" : ""
|
|
187
|
-
activeApp === "gpages" ? "opacity-100" : "opacity-0"
|
|
139
|
+
"size-10 rounded-lg cursor-pointer flex items-center justify-center border-2 ring-2 transition-colors duration-300",
|
|
140
|
+
activeApp === "gpages" ? isDefaultWl ? "bg-cyan-100 border-white ring-cyan-300" : "border-white ring-transparent" : isDefaultWl ? "hover:bg-gray-100 border-transparent ring-transparent" : "border-transparent ring-transparent"
|
|
188
141
|
),
|
|
189
|
-
style: !isDefaultWl ? {
|
|
142
|
+
style: !isDefaultWl ? {
|
|
143
|
+
backgroundColor: primaryColor,
|
|
144
|
+
boxShadow: activeApp === "gpages" ? `0 0 0 2px ${primaryColor}40` : void 0,
|
|
145
|
+
opacity: activeApp !== "gpages" ? 0.2 : void 0
|
|
146
|
+
} : void 0,
|
|
147
|
+
children: isDefaultWl ? /* @__PURE__ */ jsx(
|
|
148
|
+
Image,
|
|
149
|
+
{
|
|
150
|
+
src: "/icons/icon-navbar.svg",
|
|
151
|
+
alt: "GreatPages",
|
|
152
|
+
width: 24,
|
|
153
|
+
height: 24
|
|
154
|
+
}
|
|
155
|
+
) : /* @__PURE__ */ jsxs(
|
|
156
|
+
"svg",
|
|
157
|
+
{
|
|
158
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
159
|
+
width: "24",
|
|
160
|
+
height: "24",
|
|
161
|
+
viewBox: "0 0 24 24",
|
|
162
|
+
fill: "none",
|
|
163
|
+
stroke: "white",
|
|
164
|
+
strokeWidth: "2",
|
|
165
|
+
strokeLinecap: "round",
|
|
166
|
+
strokeLinejoin: "round",
|
|
167
|
+
children: [
|
|
168
|
+
/* @__PURE__ */ jsx("path", { d: "M4 8h16" }),
|
|
169
|
+
/* @__PURE__ */ jsx("path", { d: "M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12" }),
|
|
170
|
+
/* @__PURE__ */ jsx("path", { d: "M8 4v4" })
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
)
|
|
190
174
|
}
|
|
191
|
-
)
|
|
175
|
+
) }),
|
|
176
|
+
/* @__PURE__ */ jsx(TooltipContent, { side: "right", children: isDefaultWl ? translate("common.layout.navbar.greatPages") : translate("common.layout.navbar.pages") })
|
|
192
177
|
] }),
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
style: !isDefaultWl ? {
|
|
205
|
-
backgroundColor: primaryColor,
|
|
206
|
-
boxShadow: activeApp === "gdomain" ? `0 0 0 2px ${primaryColor}40` : void 0,
|
|
207
|
-
opacity: activeApp !== "gdomain" ? 0.2 : void 0
|
|
208
|
-
} : void 0,
|
|
209
|
-
children: isDefaultWl ? /* @__PURE__ */ jsx(GreatDomainIcon, { active: activeApp === "gdomain" }) : /* @__PURE__ */ jsxs(
|
|
210
|
-
"svg",
|
|
211
|
-
{
|
|
212
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
213
|
-
width: "24",
|
|
214
|
-
height: "24",
|
|
215
|
-
viewBox: "0 0 24 24",
|
|
216
|
-
fill: "none",
|
|
217
|
-
stroke: "white",
|
|
218
|
-
strokeWidth: "2",
|
|
219
|
-
strokeLinecap: "round",
|
|
220
|
-
strokeLinejoin: "round",
|
|
221
|
-
children: [
|
|
222
|
-
/* @__PURE__ */ jsx("path", { d: "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" }),
|
|
223
|
-
/* @__PURE__ */ jsx("path", { d: "M3.6 9h16.8" }),
|
|
224
|
-
/* @__PURE__ */ jsx("path", { d: "M3.6 15h16.8" }),
|
|
225
|
-
/* @__PURE__ */ jsx("path", { d: "M11.5 3a17 17 0 0 0 0 18" }),
|
|
226
|
-
/* @__PURE__ */ jsx("path", { d: "M12.5 3a17 17 0 0 1 0 18" })
|
|
227
|
-
]
|
|
228
|
-
}
|
|
229
|
-
)
|
|
230
|
-
}
|
|
231
|
-
) }),
|
|
232
|
-
/* @__PURE__ */ jsx(TooltipContent, { side: "right", children: isDefaultWl ? translate("common.layout.navbar.greatDomain") : translate("common.layout.navbar.domains") })
|
|
233
|
-
] }),
|
|
234
|
-
/* @__PURE__ */ jsx(
|
|
235
|
-
"div",
|
|
236
|
-
{
|
|
237
|
-
className: cn(
|
|
238
|
-
"absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300",
|
|
239
|
-
isDefaultWl ? "bg-[#984DFF]" : "",
|
|
240
|
-
activeApp === "gdomain" ? "opacity-100" : "opacity-0"
|
|
241
|
-
),
|
|
242
|
-
style: !isDefaultWl ? { backgroundColor: primaryColor } : void 0
|
|
243
|
-
}
|
|
244
|
-
)
|
|
245
|
-
] }) : null
|
|
178
|
+
/* @__PURE__ */ jsx(
|
|
179
|
+
"div",
|
|
180
|
+
{
|
|
181
|
+
className: cn(
|
|
182
|
+
"absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300",
|
|
183
|
+
isDefaultWl ? "bg-cyan-300" : "",
|
|
184
|
+
activeApp === "gpages" ? "opacity-100" : "opacity-0"
|
|
185
|
+
),
|
|
186
|
+
style: !isDefaultWl ? { backgroundColor: primaryColor } : void 0
|
|
187
|
+
}
|
|
188
|
+
)
|
|
246
189
|
] })
|
|
247
190
|
] }),
|
|
248
191
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center gap-2", children })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layouts/NavBar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { useTranslations } from \"next-intl\";\nimport { IconChevronRight } from \"@tabler/icons-react\";\nimport { Separator } from \"../ui/data-display/Separator\";\nimport { GreatDomainIcon } from \"./GreatDomainIcon\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\";\nimport {\n useDesktopSidebarStore,\n useDesktopSidebarHydration,\n} from \"../../store/useDesktopSidebarStore\";\nimport {\n useWhitelabel,\n useIsDefaultWhitelabel,\n} from \"../../providers/whitelabel.provider\";\nimport { cn } from \"../../infra/utils/clsx\";\n\ntype NavBarProps = {\n logoHref: string;\n appIconHref: string;\n /** Sem href o ícone do GreatDomain não é renderizado: é a flag do app. */\n domainIconHref?: string;\n activeApp?: \"gapps\" | \"gpages\" | \"gdomain\";\n showExpandButton?: boolean;\n onExpandClick?: () => void;\n children?: React.ReactNode;\n className?: string;\n};\n\nfunction NavBar({\n logoHref,\n appIconHref,\n domainIconHref,\n activeApp,\n showExpandButton = false,\n onExpandClick,\n children,\n className,\n}: NavBarProps) {\n const translate = useTranslations();\n const { isExpanded: isDesktopExpanded, toggle: toggleDesktop } =\n useDesktopSidebarStore();\n useDesktopSidebarHydration();\n const { whitelabel } = useWhitelabel();\n const isDefaultWl = useIsDefaultWhitelabel();\n const primaryColor = whitelabel?.general?.primary_color;\n const wlName = whitelabel?.name || \"Great\";\n\n const wlIcon = whitelabel?.secondary_logo ? (\n <Image\n className=\"size-7 object-contain\"\n src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${whitelabel.secondary_logo}`}\n alt={`${wlName} Logo`}\n width={28}\n height={28}\n />\n ) : (\n <div\n className={cn(\n \"size-10 rounded-lg flex items-center justify-center transition-opacity duration-300\",\n activeApp !== \"gapps\" && \"opacity-20\",\n )}\n style={{ backgroundColor: primaryColor }}\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n </svg>\n </div>\n );\n\n return (\n <div\n className={cn(\n \"hidden md:flex flex-col justify-between h-screen p-4 border-r border-gray-200 overflow-visible z-40 bg-white\",\n className,\n )}\n >\n <div className=\"flex flex-col gap-4 items-center mt-[6.5px]\">\n {/* GreatApps logo */}\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger className=\"cursor-pointer\" asChild>\n <Link href={logoHref}>\n {isDefaultWl ? (\n <Image\n src=\"/icons/great-icon.svg\"\n alt=\"Great Icon\"\n width={28}\n height={28}\n />\n ) : (\n wlIcon\n )}\n </Link>\n </TooltipTrigger>\n <TooltipContent side=\"right\">{wlName}</TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -left-[22px] top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-gray-950\" : \"\",\n activeApp === \"gapps\" ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n\n <div className=\"relative w-full mt-[7.5px]\">\n <Separator />\n {/* Md expand button */}\n {showExpandButton && (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={onExpandClick}\n className=\"hidden md:flex lg:hidden absolute top-1/2 -translate-y-1/2 right-0 translate-x-[calc(50%+1rem)] size-8 items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-10\"\n >\n <IconChevronRight size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n {translate(\"common.layout.navbar.expandMenu\")}\n </TooltipContent>\n </Tooltip>\n )}\n {/* Desktop expand button */}\n {!isDesktopExpanded && (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={toggleDesktop}\n className=\"hidden lg:flex absolute top-1/2 -translate-y-1/2 right-0 translate-x-[calc(50%+1rem)] size-8 items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-10\"\n >\n <IconChevronRight size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n {translate(\"common.layout.navbar.expandMenu\")}\n </TooltipContent>\n </Tooltip>\n )}\n </div>\n\n {/* Ícones de app — 8px entre eles (Figma 5929:2676) */}\n <div className=\"flex flex-col gap-2 items-center\">\n {/* GreatPages icon */}\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Link\n href={appIconHref}\n className={cn(\n \"size-10 rounded-lg cursor-pointer flex items-center justify-center border-2 ring-2 transition-colors duration-300\",\n activeApp === \"gpages\"\n ? isDefaultWl\n ? \"bg-cyan-100 border-white ring-cyan-300\"\n : \"border-white ring-transparent\"\n : isDefaultWl\n ? \"hover:bg-gray-100 border-transparent ring-transparent\"\n : \"border-transparent ring-transparent\",\n )}\n style={\n !isDefaultWl\n ? {\n backgroundColor: primaryColor,\n boxShadow:\n activeApp === \"gpages\"\n ? `0 0 0 2px ${primaryColor}40`\n : undefined,\n opacity: activeApp !== \"gpages\" ? 0.2 : undefined,\n }\n : undefined\n }\n >\n {isDefaultWl ? (\n <Image\n src=\"/icons/icon-navbar.svg\"\n alt=\"GreatPages\"\n width={24}\n height={24}\n />\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 8h16\" />\n <path d=\"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12\" />\n <path d=\"M8 4v4\" />\n </svg>\n )}\n </Link>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n {isDefaultWl\n ? translate(\"common.layout.navbar.greatPages\")\n : translate(\"common.layout.navbar.pages\")}\n </TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-cyan-300\" : \"\",\n activeApp === \"gpages\" ? \"opacity-100\" : \"opacity-0\",\n )}\n style={\n !isDefaultWl ? { backgroundColor: primaryColor } : undefined\n }\n />\n </div>\n\n {/* GreatDomain icon */}\n {domainIconHref ? (\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Link\n href={domainIconHref}\n aria-label={\n isDefaultWl\n ? translate(\"common.layout.navbar.greatDomain\")\n : translate(\"common.layout.navbar.domains\")\n }\n className={cn(\n \"size-10 rounded-[10px] cursor-pointer flex items-center justify-center border-2 ring-2 transition-colors duration-300\",\n activeApp === \"gdomain\"\n ? isDefaultWl\n ? \"bg-[#EDE9FE] border-white ring-[#C092FF]\"\n : \"border-white ring-transparent\"\n : isDefaultWl\n ? \"hover:bg-gray-100 border-transparent ring-transparent\"\n : \"border-transparent ring-transparent\",\n )}\n style={\n !isDefaultWl\n ? {\n backgroundColor: primaryColor,\n boxShadow:\n activeApp === \"gdomain\"\n ? `0 0 0 2px ${primaryColor}40`\n : undefined,\n opacity: activeApp !== \"gdomain\" ? 0.2 : undefined,\n }\n : undefined\n }\n >\n {isDefaultWl ? (\n <GreatDomainIcon active={activeApp === \"gdomain\"} />\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\" />\n <path d=\"M3.6 9h16.8\" />\n <path d=\"M3.6 15h16.8\" />\n <path d=\"M11.5 3a17 17 0 0 0 0 18\" />\n <path d=\"M12.5 3a17 17 0 0 1 0 18\" />\n </svg>\n )}\n </Link>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n {isDefaultWl\n ? translate(\"common.layout.navbar.greatDomain\")\n : translate(\"common.layout.navbar.domains\")}\n </TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-[#984DFF]\" : \"\",\n activeApp === \"gdomain\" ? \"opacity-100\" : \"opacity-0\",\n )}\n style={\n !isDefaultWl ? { backgroundColor: primaryColor } : undefined\n }\n />\n </div>\n ) : null}\n </div>\n </div>\n\n <div className=\"flex flex-col items-center gap-2\">{children}</div>\n </div>\n );\n}\n\nexport { NavBar };\nexport type { NavBarProps };\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/layouts/NavBar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { useTranslations } from \"next-intl\";\nimport { IconChevronRight } from \"@tabler/icons-react\";\nimport { Separator } from \"../ui/data-display/Separator\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\";\nimport {\n useDesktopSidebarStore,\n useDesktopSidebarHydration,\n} from \"../../store/useDesktopSidebarStore\";\nimport {\n useWhitelabel,\n useIsDefaultWhitelabel,\n} from \"../../providers/whitelabel.provider\";\nimport { cn } from \"../../infra/utils/clsx\";\n\ntype NavBarProps = {\n logoHref: string;\n appIconHref: string;\n activeApp?: \"gapps\" | \"gpages\";\n showExpandButton?: boolean;\n onExpandClick?: () => void;\n children?: React.ReactNode;\n className?: string;\n};\n\nfunction NavBar({\n logoHref,\n appIconHref,\n activeApp,\n showExpandButton = false,\n onExpandClick,\n children,\n className,\n}: NavBarProps) {\n const translate = useTranslations();\n const { isExpanded: isDesktopExpanded, toggle: toggleDesktop } =\n useDesktopSidebarStore();\n useDesktopSidebarHydration();\n const { whitelabel } = useWhitelabel();\n const isDefaultWl = useIsDefaultWhitelabel();\n const primaryColor = whitelabel?.general?.primary_color;\n const wlName = whitelabel?.name || \"Great\";\n\n const wlIcon = whitelabel?.secondary_logo ? (\n <Image\n className=\"size-7 object-contain\"\n src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${whitelabel.secondary_logo}`}\n alt={`${wlName} Logo`}\n width={28}\n height={28}\n />\n ) : (\n <div\n className={cn(\n \"size-10 rounded-lg flex items-center justify-center transition-opacity duration-300\",\n activeApp !== \"gapps\" && \"opacity-20\",\n )}\n style={{ backgroundColor: primaryColor }}\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n <path d=\"M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4\" />\n </svg>\n </div>\n );\n\n return (\n <div\n className={cn(\n \"hidden md:flex flex-col justify-between h-screen p-4 border-r border-gray-200 overflow-visible z-40 bg-white\",\n className,\n )}\n >\n <div className=\"flex flex-col gap-4 items-center mt-[6.5px]\">\n {/* GreatApps logo */}\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger className=\"cursor-pointer\" asChild>\n <Link href={logoHref}>\n {isDefaultWl ? (\n <Image\n src=\"/icons/great-icon.svg\"\n alt=\"Great Icon\"\n width={28}\n height={28}\n />\n ) : (\n wlIcon\n )}\n </Link>\n </TooltipTrigger>\n <TooltipContent side=\"right\">{wlName}</TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -left-[22px] top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-gray-950\" : \"\",\n activeApp === \"gapps\" ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n\n <div className=\"relative w-full mt-[7.5px]\">\n <Separator />\n {/* Md expand button */}\n {showExpandButton && (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={onExpandClick}\n className=\"hidden md:flex lg:hidden absolute top-1/2 -translate-y-1/2 right-0 translate-x-[calc(50%+1rem)] size-8 items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-10\"\n >\n <IconChevronRight size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">{translate('common.layout.navbar.expandMenu')}</TooltipContent>\n </Tooltip>\n )}\n {/* Desktop expand button */}\n {!isDesktopExpanded && (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={toggleDesktop}\n className=\"hidden lg:flex absolute top-1/2 -translate-y-1/2 right-0 translate-x-[calc(50%+1rem)] size-8 items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-10\"\n >\n <IconChevronRight size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">{translate('common.layout.navbar.expandMenu')}</TooltipContent>\n </Tooltip>\n )}\n </div>\n\n {/* GreatPages icon */}\n <div className=\"relative\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Link\n href={appIconHref}\n className={cn(\n \"size-10 rounded-lg cursor-pointer flex items-center justify-center border-2 ring-2 transition-colors duration-300\",\n activeApp === \"gpages\"\n ? isDefaultWl\n ? \"bg-cyan-100 border-white ring-cyan-300\"\n : \"border-white ring-transparent\"\n : isDefaultWl\n ? \"hover:bg-gray-100 border-transparent ring-transparent\"\n : \"border-transparent ring-transparent\",\n )}\n style={\n !isDefaultWl\n ? {\n backgroundColor: primaryColor,\n boxShadow:\n activeApp === \"gpages\"\n ? `0 0 0 2px ${primaryColor}40`\n : undefined,\n opacity: activeApp !== \"gpages\" ? 0.2 : undefined,\n }\n : undefined\n }\n >\n {isDefaultWl ? (\n <Image\n src=\"/icons/icon-navbar.svg\"\n alt=\"GreatPages\"\n width={24}\n height={24}\n />\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=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 8h16\" />\n <path d=\"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12\" />\n <path d=\"M8 4v4\" />\n </svg>\n )}\n </Link>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n {isDefaultWl ? translate('common.layout.navbar.greatPages') : translate('common.layout.navbar.pages')}\n </TooltipContent>\n </Tooltip>\n <div\n className={cn(\n \"absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 rounded-r-xl transition-opacity duration-300\",\n isDefaultWl ? \"bg-cyan-300\" : \"\",\n activeApp === \"gpages\" ? \"opacity-100\" : \"opacity-0\",\n )}\n style={!isDefaultWl ? { backgroundColor: primaryColor } : undefined}\n />\n </div>\n </div>\n\n <div className=\"flex flex-col items-center gap-2\">{children}</div>\n </div>\n );\n}\n\nexport { NavBar };\nexport type { NavBarProps };\n"],"mappings":"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","names":[]}
|
|
@@ -74,6 +74,7 @@ function AddCardModal() {
|
|
|
74
74
|
const [stripeErrors, setStripeErrors] = useState({});
|
|
75
75
|
const [isAuthenticating, setIsAuthenticating] = useState(false);
|
|
76
76
|
const onCardAdded = modalData.onCardAdded;
|
|
77
|
+
const setAsDefault = modalData.setAsDefault !== false;
|
|
77
78
|
const createSetupIntentMutation = useCreateSetupIntent();
|
|
78
79
|
const createCardMutation = useCreateCard();
|
|
79
80
|
const elements = useElements();
|
|
@@ -195,7 +196,7 @@ function AddCardModal() {
|
|
|
195
196
|
const cardResult = await createCardMutation.mutateAsync({
|
|
196
197
|
setup_intent_id: intent.setup_intent_id,
|
|
197
198
|
name: data.name,
|
|
198
|
-
set_default:
|
|
199
|
+
set_default: setAsDefault,
|
|
199
200
|
...isInternational ? {} : {
|
|
200
201
|
financial_document_type: data.personType === "pf" ? 1 : 2,
|
|
201
202
|
financial_document: data.personType === "pf" ? data.cpf : data.cnpj
|
|
@@ -210,6 +211,7 @@ function AddCardModal() {
|
|
|
210
211
|
state: data.state,
|
|
211
212
|
country: data.country
|
|
212
213
|
});
|
|
214
|
+
handleClose();
|
|
213
215
|
if (cardResult.success && cardResult.data?.id != null) {
|
|
214
216
|
onCardAdded?.(cardResult.data.id.toString());
|
|
215
217
|
}
|
|
@@ -217,7 +219,6 @@ function AddCardModal() {
|
|
|
217
219
|
(t) => /* @__PURE__ */ jsx(Toast, { variant: "success", message: translate("common.cards.add.successToast"), toastId: t }),
|
|
218
220
|
{ duration: 5e3 }
|
|
219
221
|
);
|
|
220
|
-
handleClose();
|
|
221
222
|
} catch (error) {
|
|
222
223
|
const backendMessage = error instanceof Error && error.message ? error.message : null;
|
|
223
224
|
toast.custom(
|