@greatapps/common 1.1.44 → 1.1.48
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/UsersSelectorPopover.mjs +92 -21
- package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -1
- package/dist/modules/accounts/actions/account-management.action.mjs +80 -29
- package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
- package/dist/modules/projects/actions/add-project-user.action.mjs +9 -0
- package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -0
- package/dist/modules/projects/actions/list-available-users.action.mjs +9 -0
- package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -0
- package/dist/modules/projects/actions/list-project-users.action.mjs +9 -0
- package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -0
- package/dist/modules/projects/actions/remove-project-user.action.mjs +9 -0
- package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -0
- package/dist/modules/projects/hooks/project-users.hook.mjs +70 -0
- package/dist/modules/projects/hooks/project-users.hook.mjs.map +1 -0
- package/dist/modules/projects/services/project-users.service.mjs +67 -0
- package/dist/modules/projects/services/project-users.service.mjs.map +1 -0
- package/dist/modules/projects/types.mjs +22 -0
- package/dist/modules/projects/types.mjs.map +1 -0
- package/dist/server.mjs +10 -0
- package/dist/server.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/layouts/UsersSelectorPopover.tsx +163 -63
- package/src/index.ts +2 -0
- package/src/modules/accounts/actions/account-management.action.ts +112 -48
- package/src/modules/accounts/types.ts +1 -0
- package/src/modules/projects/actions/add-project-user.action.ts +8 -0
- package/src/modules/projects/actions/list-available-users.action.ts +8 -0
- package/src/modules/projects/actions/list-project-users.action.ts +8 -0
- package/src/modules/projects/actions/remove-project-user.action.ts +8 -0
- package/src/modules/projects/hooks/project-users.hook.ts +81 -0
- package/src/modules/projects/services/project-users.service.ts +94 -0
- package/src/modules/projects/types.ts +28 -0
- package/src/server.ts +7 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Plus, Settings, User } from "lucide-react";
|
|
5
5
|
import Image from "next/image";
|
|
@@ -10,30 +10,30 @@ import { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from ".
|
|
|
10
10
|
import { Checkbox } from "../ui/form/Checkbox";
|
|
11
11
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
|
|
12
12
|
import { cn } from "../../infra/utils/clsx";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
import { useProjectUsers } from "../../modules/projects/hooks/project-users.hook";
|
|
14
|
+
function UserItemSkeleton() {
|
|
15
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-2 py-1.5 gap-2", children: [
|
|
16
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
17
|
+
/* @__PURE__ */ jsx("div", { className: "size-8 rounded-full bg-gray-100 animate-pulse shrink-0" }),
|
|
18
|
+
/* @__PURE__ */ jsx("div", { className: "h-3.5 w-28 rounded bg-gray-100 animate-pulse" })
|
|
19
|
+
] }),
|
|
20
|
+
/* @__PURE__ */ jsx("div", { className: "size-4 rounded bg-gray-100 animate-pulse shrink-0" })
|
|
21
|
+
] });
|
|
22
|
+
}
|
|
23
|
+
function UsersSelectorPopoverContent({
|
|
24
|
+
users,
|
|
25
|
+
isLoading,
|
|
26
|
+
userCount,
|
|
27
|
+
toggleUser,
|
|
28
|
+
addRoute,
|
|
29
|
+
manageRoute,
|
|
19
30
|
side,
|
|
20
31
|
align,
|
|
21
32
|
contentClassName
|
|
22
33
|
}) {
|
|
23
34
|
const route = useRouter();
|
|
24
35
|
const [open, setOpen] = useState(false);
|
|
25
|
-
const [internalUsers, setInternalUsers] = useState(externalUsers ?? []);
|
|
26
36
|
const [hoveredId, setHoveredId] = useState(null);
|
|
27
|
-
const users = externalUsers ?? internalUsers;
|
|
28
|
-
const toggleUser = (id) => {
|
|
29
|
-
if (onToggleUser) {
|
|
30
|
-
onToggleUser(id);
|
|
31
|
-
} else {
|
|
32
|
-
setInternalUsers(
|
|
33
|
-
(prev) => prev.map((u) => u.id === id ? { ...u, checked: !u.checked } : u)
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
37
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
38
38
|
/* @__PURE__ */ jsx(PopoverTrigger, { className: "cursor-pointer", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-gray-950 px-3 py-2 border border-gray-200 rounded-full hover:border-gray-950", children: [
|
|
39
39
|
/* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold", children: userCount }),
|
|
@@ -81,11 +81,16 @@ function UsersSelectorPopover({
|
|
|
81
81
|
] }),
|
|
82
82
|
/* @__PURE__ */ jsxs(Command, { className: "gap-2", value: "", children: [
|
|
83
83
|
/* @__PURE__ */ jsx(CommandInput, { placeholder: "Busque aqui" }),
|
|
84
|
-
/* @__PURE__ */
|
|
85
|
-
/* @__PURE__ */ jsx(
|
|
84
|
+
/* @__PURE__ */ jsx(CommandList, { className: "custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]", children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
85
|
+
/* @__PURE__ */ jsx(UserItemSkeleton, {}),
|
|
86
|
+
/* @__PURE__ */ jsx(UserItemSkeleton, {}),
|
|
87
|
+
/* @__PURE__ */ jsx(UserItemSkeleton, {})
|
|
88
|
+
] }) : users.length === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx("span", { className: "paragraph-small-medium text-center text-gray-500", children: "Nenhum usu\xE1rio encontrado." }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
89
|
+
/* @__PURE__ */ jsx(CommandEmpty, { children: "Nenhum resultado encontrado." }),
|
|
86
90
|
users.map((user) => /* @__PURE__ */ jsx(
|
|
87
91
|
CommandItem,
|
|
88
92
|
{
|
|
93
|
+
value: user.name,
|
|
89
94
|
autoFocus: false,
|
|
90
95
|
onPointerEnter: () => setHoveredId(user.id),
|
|
91
96
|
onPointerLeave: () => setHoveredId(null),
|
|
@@ -129,13 +134,79 @@ function UsersSelectorPopover({
|
|
|
129
134
|
},
|
|
130
135
|
user.id
|
|
131
136
|
))
|
|
132
|
-
] })
|
|
137
|
+
] }) })
|
|
133
138
|
] })
|
|
134
139
|
] })
|
|
135
140
|
}
|
|
136
141
|
)
|
|
137
142
|
] });
|
|
138
143
|
}
|
|
144
|
+
function ConnectedUsersSelectorPopover({
|
|
145
|
+
id_project,
|
|
146
|
+
addRoute,
|
|
147
|
+
manageRoute,
|
|
148
|
+
side,
|
|
149
|
+
align,
|
|
150
|
+
contentClassName
|
|
151
|
+
}) {
|
|
152
|
+
const { users, isLoading, userCount, toggleUser } = useProjectUsers(id_project);
|
|
153
|
+
return /* @__PURE__ */ jsx(
|
|
154
|
+
UsersSelectorPopoverContent,
|
|
155
|
+
{
|
|
156
|
+
users,
|
|
157
|
+
isLoading,
|
|
158
|
+
userCount,
|
|
159
|
+
toggleUser,
|
|
160
|
+
addRoute: addRoute ?? "/my-teams?createNew=true",
|
|
161
|
+
manageRoute: manageRoute ?? "/my-teams",
|
|
162
|
+
side,
|
|
163
|
+
align,
|
|
164
|
+
contentClassName
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
function StaticUsersSelectorPopover({
|
|
169
|
+
users: externalUsers = [],
|
|
170
|
+
onToggleUser,
|
|
171
|
+
userCount = 5,
|
|
172
|
+
addRoute = "/my-teams?createNew=true",
|
|
173
|
+
manageRoute = "/my-teams",
|
|
174
|
+
side,
|
|
175
|
+
align,
|
|
176
|
+
contentClassName
|
|
177
|
+
}) {
|
|
178
|
+
const [internalUsers, setInternalUsers] = useState(externalUsers);
|
|
179
|
+
const users = externalUsers.length > 0 ? externalUsers : internalUsers;
|
|
180
|
+
const toggleUser = (id) => {
|
|
181
|
+
if (onToggleUser) {
|
|
182
|
+
onToggleUser(id);
|
|
183
|
+
} else {
|
|
184
|
+
setInternalUsers(
|
|
185
|
+
(prev) => prev.map((u) => u.id === id ? { ...u, checked: !u.checked } : u)
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
return /* @__PURE__ */ jsx(
|
|
190
|
+
UsersSelectorPopoverContent,
|
|
191
|
+
{
|
|
192
|
+
users,
|
|
193
|
+
isLoading: false,
|
|
194
|
+
userCount,
|
|
195
|
+
toggleUser,
|
|
196
|
+
addRoute,
|
|
197
|
+
manageRoute,
|
|
198
|
+
side,
|
|
199
|
+
align,
|
|
200
|
+
contentClassName
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
function UsersSelectorPopover(props) {
|
|
205
|
+
if (props.id_project != null) {
|
|
206
|
+
return /* @__PURE__ */ jsx(ConnectedUsersSelectorPopover, { ...props, id_project: props.id_project });
|
|
207
|
+
}
|
|
208
|
+
return /* @__PURE__ */ jsx(StaticUsersSelectorPopover, { ...props });
|
|
209
|
+
}
|
|
139
210
|
export {
|
|
140
211
|
UsersSelectorPopover
|
|
141
212
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layouts/UsersSelectorPopover.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { useState } from 'react';\r\nimport { Plus, Settings, User } from 'lucide-react';\r\nimport Image from 'next/image';\r\nimport { useRouter } from 'next/navigation';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/overlay/Popover';\r\nimport { Button } from '../ui/buttons/Button';\r\nimport { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from '../ui/overlay/Command';\r\nimport { Checkbox } from '../ui/form/Checkbox';\r\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/overlay/Tooltip';\r\nimport { cn } from '../../infra/utils/clsx';\r\n\r\nexport interface UserSelectorItem {\r\n id: number;\r\n name: string;\r\n avatar: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface UsersSelectorPopoverProps {\r\n users?: UserSelectorItem[];\r\n onToggleUser?: (id: number) => void;\r\n addRoute?: string;\r\n manageRoute?: string;\r\n userCount?: number;\r\n side?: 'top' | 'bottom' | 'left' | 'right';\r\n align?: 'start' | 'center' | 'end';\r\n contentClassName?: string;\r\n}\r\n\r\nfunction UsersSelectorPopover({\r\n users: externalUsers,\r\n onToggleUser,\r\n addRoute = '/my-teams?createNew=true',\r\n manageRoute = '/my-teams',\r\n userCount = 5,\r\n side,\r\n align,\r\n contentClassName,\r\n}: UsersSelectorPopoverProps) {\r\n const route = useRouter();\r\n const [open, setOpen] = useState(false);\r\n const [internalUsers, setInternalUsers] = useState<UserSelectorItem[]>(externalUsers ?? []);\r\n const [hoveredId, setHoveredId] = useState<number | null>(null);\r\n\r\n const users = externalUsers ?? internalUsers;\r\n\r\n const toggleUser = (id: number) => {\r\n if (onToggleUser) {\r\n onToggleUser(id);\r\n } else {\r\n setInternalUsers((prev) =>\r\n prev.map((u) => (u.id === id ? { ...u, checked: !u.checked } : u))\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger className=\"cursor-pointer\">\r\n <div className=\"flex items-center gap-2 text-gray-950 px-3 py-2 border border-gray-200 rounded-full hover:border-gray-950\">\r\n <span className=\"paragraph-small-semibold\">{userCount}</span>\r\n <User size={16} />\r\n </div>\r\n </PopoverTrigger>\r\n\r\n <PopoverContent\r\n className={cn(\r\n 'absolute right-[-88px] w-[273px] p-0 bg-white rounded-2xl shadow-md border border-gray-200',\r\n contentClassName\r\n )}\r\n side={side}\r\n align={align}\r\n sideOffset={8}\r\n >\r\n <div className=\"flex flex-col p-3 gap-2\">\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"paragraph-small-semibold\">Usuários</span>\r\n <div className=\"flex items-center gap-1.5\">\r\n <Button\r\n variant=\"secondary\"\r\n className=\"h-8 paragraph-small-semibold text-gray-950\"\r\n onClick={() => route.push(addRoute)}\r\n >\r\n <Plus size={16} />\r\n Adicionar\r\n </Button>\r\n\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"secondary\"\r\n className=\"p-0 size-8\"\r\n onClick={() => route.push(manageRoute)}\r\n >\r\n <Settings size={18} />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Visualizar todos usuários</TooltipContent>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n\r\n <Command className=\"gap-2\" value=\"\">\r\n <CommandInput placeholder=\"Busque aqui\" />\r\n <CommandList className=\"custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]\">\r\n <CommandEmpty>No results found.</CommandEmpty>\r\n {users.map((user) => (\r\n <CommandItem\r\n key={user.id}\r\n autoFocus={false}\r\n onPointerEnter={() => setHoveredId(user.id)}\r\n onPointerLeave={() => setHoveredId(null)}\r\n onFocus={() => setHoveredId(user.id)}\r\n onBlur={() => setHoveredId(null)}\r\n onSelect={() => toggleUser(user.id)}\r\n className=\"cursor-pointer\"\r\n >\r\n <div className=\"flex items-center justify-between w-full\">\r\n <div className=\"flex items-center gap-2\">\r\n <Image\r\n alt=\"Avatar\"\r\n src={user.avatar}\r\n width={32}\r\n height={32}\r\n className=\"rounded-full\"\r\n />\r\n {user.name}\r\n </div>\r\n\r\n <Tooltip open={hoveredId === user.id}>\r\n <TooltipTrigger\r\n onClick={(e) => e.stopPropagation()}\r\n onPointerDown={(e) => e.stopPropagation()}\r\n >\r\n <Checkbox\r\n checked={user.checked}\r\n onCheckedChange={() => toggleUser(user.id)}\r\n className={hoveredId === user.id ? 'border-gray-950' : ''}\r\n />\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n {user.checked ? 'Remover do projeto' : 'Adicionar ao projeto'}\r\n </TooltipContent>\r\n </Tooltip>\r\n </div>\r\n </CommandItem>\r\n ))}\r\n </CommandList>\r\n </Command>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}\r\n\r\nexport { UsersSelectorPopover };\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/layouts/UsersSelectorPopover.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { useState } from 'react';\r\nimport { Plus, Settings, User } from 'lucide-react';\r\nimport Image from 'next/image';\r\nimport { useRouter } from 'next/navigation';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/overlay/Popover';\r\nimport { Button } from '../ui/buttons/Button';\r\nimport { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from '../ui/overlay/Command';\r\nimport { Checkbox } from '../ui/form/Checkbox';\r\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/overlay/Tooltip';\r\nimport { cn } from '../../infra/utils/clsx';\r\nimport { useProjectUsers } from '../../modules/projects/hooks/project-users.hook';\r\n\r\nexport interface UserSelectorItem {\r\n id: number;\r\n name: string;\r\n avatar: string;\r\n checked: boolean;\r\n}\r\n\r\nfunction UserItemSkeleton() {\r\n return (\r\n <div className=\"flex items-center justify-between px-2 py-1.5 gap-2\">\r\n <div className=\"flex items-center gap-2 flex-1\">\r\n <div className=\"size-8 rounded-full bg-gray-100 animate-pulse shrink-0\" />\r\n <div className=\"h-3.5 w-28 rounded bg-gray-100 animate-pulse\" />\r\n </div>\r\n <div className=\"size-4 rounded bg-gray-100 animate-pulse shrink-0\" />\r\n </div>\r\n );\r\n}\r\n\r\nexport interface UsersSelectorPopoverProps {\r\n id_project?: number;\r\n users?: UserSelectorItem[];\r\n onToggleUser?: (id: number) => void;\r\n addRoute?: string;\r\n manageRoute?: string;\r\n userCount?: number;\r\n side?: 'top' | 'bottom' | 'left' | 'right';\r\n align?: 'start' | 'center' | 'end';\r\n contentClassName?: string;\r\n}\r\n\r\ninterface ContentProps {\r\n users: UserSelectorItem[];\r\n isLoading: boolean;\r\n userCount: number;\r\n toggleUser: (id: number) => void;\r\n addRoute: string;\r\n manageRoute: string;\r\n side?: UsersSelectorPopoverProps['side'];\r\n align?: UsersSelectorPopoverProps['align'];\r\n contentClassName?: string;\r\n}\r\n\r\nfunction UsersSelectorPopoverContent({\r\n users,\r\n isLoading,\r\n userCount,\r\n toggleUser,\r\n addRoute,\r\n manageRoute,\r\n side,\r\n align,\r\n contentClassName,\r\n}: ContentProps) {\r\n const route = useRouter();\r\n const [open, setOpen] = useState(false);\r\n const [hoveredId, setHoveredId] = useState<number | null>(null);\r\n\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger className=\"cursor-pointer\">\r\n <div className=\"flex items-center gap-2 text-gray-950 px-3 py-2 border border-gray-200 rounded-full hover:border-gray-950\">\r\n <span className=\"paragraph-small-semibold\">{userCount}</span>\r\n <User size={16} />\r\n </div>\r\n </PopoverTrigger>\r\n\r\n <PopoverContent\r\n className={cn(\r\n 'absolute right-[-88px] w-[273px] p-0 bg-white rounded-2xl shadow-md border border-gray-200',\r\n contentClassName\r\n )}\r\n side={side}\r\n align={align}\r\n sideOffset={8}\r\n >\r\n <div className=\"flex flex-col p-3 gap-2\">\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"paragraph-small-semibold\">Usuários</span>\r\n <div className=\"flex items-center gap-1.5\">\r\n <Button\r\n variant=\"secondary\"\r\n className=\"h-8 paragraph-small-semibold text-gray-950\"\r\n onClick={() => route.push(addRoute)}\r\n >\r\n <Plus size={16} />\r\n Adicionar\r\n </Button>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"secondary\"\r\n className=\"p-0 size-8\"\r\n onClick={() => route.push(manageRoute)}\r\n >\r\n <Settings size={18} />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Visualizar todos usuários</TooltipContent>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n\r\n <Command className=\"gap-2\" value=\"\">\r\n <CommandInput placeholder=\"Busque aqui\" />\r\n <CommandList className=\"custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]\">\r\n {isLoading ? (\r\n <>\r\n <UserItemSkeleton />\r\n <UserItemSkeleton />\r\n <UserItemSkeleton />\r\n </>\r\n ) : users.length === 0 ? (\r\n <div className=\"flex items-center justify-center h-full\">\r\n <span className=\"paragraph-small-medium text-center text-gray-500\">\r\n Nenhum usuário encontrado.\r\n </span>\r\n </div>\r\n ) : (\r\n <>\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n {users.map((user) => (\r\n <CommandItem\r\n key={user.id}\r\n value={user.name}\r\n autoFocus={false}\r\n onPointerEnter={() => setHoveredId(user.id)}\r\n onPointerLeave={() => setHoveredId(null)}\r\n onFocus={() => setHoveredId(user.id)}\r\n onBlur={() => setHoveredId(null)}\r\n onSelect={() => toggleUser(user.id)}\r\n className=\"cursor-pointer\"\r\n >\r\n <div className=\"flex items-center justify-between w-full\">\r\n <div className=\"flex items-center gap-2\">\r\n <Image\r\n alt=\"Avatar\"\r\n src={user.avatar}\r\n width={32}\r\n height={32}\r\n className=\"rounded-full\"\r\n />\r\n {user.name}\r\n </div>\r\n <Tooltip open={hoveredId === user.id}>\r\n <TooltipTrigger\r\n onClick={(e) => e.stopPropagation()}\r\n onPointerDown={(e) => e.stopPropagation()}\r\n >\r\n <Checkbox\r\n checked={user.checked}\r\n onCheckedChange={() => toggleUser(user.id)}\r\n className={hoveredId === user.id ? 'border-gray-950' : ''}\r\n />\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n {user.checked ? 'Remover do projeto' : 'Adicionar ao projeto'}\r\n </TooltipContent>\r\n </Tooltip>\r\n </div>\r\n </CommandItem>\r\n ))}\r\n </>\r\n )}\r\n </CommandList>\r\n </Command>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}\r\n\r\nfunction ConnectedUsersSelectorPopover({\r\n id_project,\r\n addRoute,\r\n manageRoute,\r\n side,\r\n align,\r\n contentClassName,\r\n}: Required<Pick<UsersSelectorPopoverProps, 'id_project'>> &\r\n Pick<UsersSelectorPopoverProps, 'addRoute' | 'manageRoute' | 'side' | 'align' | 'contentClassName'>) {\r\n const { users, isLoading, userCount, toggleUser } = useProjectUsers(id_project);\r\n return (\r\n <UsersSelectorPopoverContent\r\n users={users}\r\n isLoading={isLoading}\r\n userCount={userCount}\r\n toggleUser={toggleUser}\r\n addRoute={addRoute ?? '/my-teams?createNew=true'}\r\n manageRoute={manageRoute ?? '/my-teams'}\r\n side={side}\r\n align={align}\r\n contentClassName={contentClassName}\r\n />\r\n );\r\n}\r\n\r\nfunction StaticUsersSelectorPopover({\r\n users: externalUsers = [],\r\n onToggleUser,\r\n userCount = 5,\r\n addRoute = '/my-teams?createNew=true',\r\n manageRoute = '/my-teams',\r\n side,\r\n align,\r\n contentClassName,\r\n}: Omit<UsersSelectorPopoverProps, 'id_project'>) {\r\n const [internalUsers, setInternalUsers] = useState<UserSelectorItem[]>(externalUsers);\r\n\r\n const users = externalUsers.length > 0 ? externalUsers : internalUsers;\r\n\r\n const toggleUser = (id: number) => {\r\n if (onToggleUser) {\r\n onToggleUser(id);\r\n } else {\r\n setInternalUsers((prev) =>\r\n prev.map((u) => (u.id === id ? { ...u, checked: !u.checked } : u))\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <UsersSelectorPopoverContent\r\n users={users}\r\n isLoading={false}\r\n userCount={userCount}\r\n toggleUser={toggleUser}\r\n addRoute={addRoute}\r\n manageRoute={manageRoute}\r\n side={side}\r\n align={align}\r\n contentClassName={contentClassName}\r\n />\r\n );\r\n}\r\n\r\nfunction UsersSelectorPopover(props: UsersSelectorPopoverProps) {\r\n if (props.id_project != null) {\r\n return <ConnectedUsersSelectorPopover {...props} id_project={props.id_project} />;\r\n }\r\n return <StaticUsersSelectorPopover {...props} />;\r\n}\r\n\r\nexport { UsersSelectorPopover };\r\n"],"mappings":"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","names":[]}
|
package/dist/index.mjs
CHANGED
|
@@ -5,6 +5,7 @@ export * from "./infra/api/types";
|
|
|
5
5
|
export * from "./providers/query.provider";
|
|
6
6
|
export * from "./providers/auth.provider";
|
|
7
7
|
export * from "./providers/whitelabel.provider";
|
|
8
|
+
import { useProjectUsers, projectUsersQueryKey } from "./modules/projects/hooks/project-users.hook";
|
|
8
9
|
import { useUserQuery, useUserValidateSession, useInvalidateUser, useSetUserData, USER_QUERY_KEY } from "./modules/auth/hooks/useUserQuery";
|
|
9
10
|
import { useSubscriptions, SUBSCRIPTIONS_QUERY_KEY } from "./modules/subscriptions/hooks/list-subscriptions.hook";
|
|
10
11
|
import { useActiveSubscription } from "./modules/subscriptions/hooks/find-active-subscription.hook";
|
|
@@ -268,6 +269,7 @@ export {
|
|
|
268
269
|
formatTimer,
|
|
269
270
|
parseResult,
|
|
270
271
|
parseSchema,
|
|
272
|
+
projectUsersQueryKey,
|
|
271
273
|
readFromClipboard,
|
|
272
274
|
stopChain,
|
|
273
275
|
timezoneService,
|
|
@@ -284,6 +286,7 @@ export {
|
|
|
284
286
|
useMdSidebarStore,
|
|
285
287
|
useModalManager,
|
|
286
288
|
default5 as usePasswordVisibility,
|
|
289
|
+
useProjectUsers,
|
|
287
290
|
useSetUserData,
|
|
288
291
|
useSubscriptions,
|
|
289
292
|
useUpdateAccount,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Types\nexport * from './modules/auth/schema';\nexport * from './modules/users/schema';\nexport * from './modules/whitelabel/schema';\nexport * from './infra/api/types';\n\n// Contexts\nexport * from './providers/query.provider';\nexport * from './providers/auth.provider';\nexport * from './providers/whitelabel.provider';\n\n// Hooks\nexport { useUserQuery, useUserValidateSession, useInvalidateUser, useSetUserData, USER_QUERY_KEY } from './modules/auth/hooks/useUserQuery';\nexport { useSubscriptions, SUBSCRIPTIONS_QUERY_KEY } from './modules/subscriptions/hooks/list-subscriptions.hook';\nexport { useActiveSubscription } from './modules/subscriptions/hooks/find-active-subscription.hook';\nexport { useIaCredits } from './modules/ia-credits/hooks/ia-credits.hook';\nexport type { IaCreditsSummary, IaCreditOperation } from './modules/ia-credits/types';\nexport type { Subscription, SubscriptionItem, FindSubscriptionsParams } from './modules/subscriptions/types';\nexport { SubscriptionSchema, SubscriptionItemSchema } from './modules/subscriptions/types';\nexport { ADDON_IDS } from './modules/subscriptions/constants/addons.constants';\nexport type { AddonKindEnum } from './modules/subscriptions/constants/addons.constants';\n\n// Providers\nexport { QueryProvider } from './providers/query.provider';\n\n// Middleware\nexport { createAuthMiddleware } from './middlewares/create-auth-middleware';\nexport { createMiddlewareChain } from './middlewares/chain';\nexport { continueChain, stopChain } from './middlewares/types';\nexport type { MiddlewareFunction, MiddlewareConfig, MiddlewareResult } from './middlewares/types';\n\n// Utils\nexport { cn } from './infra/utils/clsx';\nexport { buildQueryParams } from './infra/utils/params';\nexport { parseSchema, parseResult } from './infra/utils/parser';\n\n// Layout\nexport { MainLayout, MainLayoutContent, MainLayoutSpacer, MainLayoutMain } from './components/layouts/MainLayout';\nexport { NavBar } from './components/layouts/NavBar';\nexport type { NavBarProps } from './components/layouts/NavBar';\nexport { AppNavBar } from './components/layouts/AppNavBar';\nexport type { AppNavBarProps } from './components/layouts/AppNavBar';\nexport { AppMobileNavBar } from './components/layouts/AppMobileNavBar';\nexport type { AppMobileNavBarProps } from './components/layouts/AppMobileNavBar';\nexport { SideBarNavigation } from './components/layouts/SideBarNavigation';\nexport { MdSideBarNavigation } from './components/layouts/MdSideBarNavigation';\nexport { NotificationItem } from './components/layouts/NotificationItem';\nexport type { NotificationItemProps } from './components/layouts/NotificationItem';\nexport { NotificationsPopover } from './components/layouts/NotificationsPopover';\nexport type { NotificationsPopoverProps, NotificationData } from './components/layouts/NotificationsPopover';\nexport { UsersSelectorPopover } from './components/layouts/UsersSelectorPopover';\nexport type { UsersSelectorPopoverProps, UserSelectorItem } from './components/layouts/UsersSelectorPopover';\nexport { ProfilePopover } from './components/layouts/ProfilePopover';\nexport type { ProfilePopoverProps, ProfileMenuItem } from './components/layouts/ProfilePopover';\nexport { NavBarItem } from './components/layouts/NavBarItem';\nexport type { NavBarItemProps } from './components/layouts/NavBarItem';\n\n// UI - Buttons\nexport { Button, buttonVariants } from './components/ui/buttons/Button';\nexport { CopyButton } from './components/ui/buttons/CopyButton';\nexport { default as CancelButton } from './components/ui/buttons/CancelButton';\n\n// UI - Data Display\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './components/ui/data-display/Accordion';\nexport { Badge, badgeVariants } from './components/ui/data-display/Badge';\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent } from './components/ui/data-display/Card';\nexport { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis } from './components/ui/data-display/Pagination';\nexport { ScrollArea, ScrollBar } from './components/ui/data-display/ScrollArea';\nexport { Separator } from './components/ui/data-display/Separator';\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption } from './components/ui/data-display/Table';\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from './components/ui/data-display/Tabs';\nexport { UserAvatar } from './components/ui/data-display/UserAvatar';\nexport type { UserAvatarProps } from './components/ui/data-display/UserAvatar';\n\n// UI - Feedback\nexport { default as CircularProgress } from './components/ui/feedback/CircularProgress';\nexport { default as DefaultCircularProgress } from './components/ui/feedback/DefaultCircularProgress';\nexport { Progress } from './components/ui/feedback/Progress';\nexport { LoadingOverlay } from './components/ui/feedback/LoadingOverlay';\nexport { Toast, toastVariants, toastIconContainerVariants } from './components/ui/feedback/Toast';\nexport type { ToastProps } from './components/ui/feedback/Toast';\n\n// UI - Form\nexport { Calendar, CalendarDayButton } from './components/ui/form/Calendar';\nexport { Checkbox } from './components/ui/form/Checkbox';\nexport { DatePicker } from './components/ui/form/DatePicker';\nexport { DateRangePicker } from './components/ui/form/DateRangePicker';\nexport { Input } from './components/ui/form/Input';\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from './components/ui/form/InputOtp';\nexport { RadioGroup, RadioGroupItem } from './components/ui/form/RadioGroup';\nexport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './components/ui/form/Select';\nexport { Switch } from './components/ui/form/Switch';\nexport { Textarea } from './components/ui/form/Textarea';\n\n// UI - Overlay\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator } from './components/ui/overlay/Command';\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/ui/overlay/Dialog';\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from './components/ui/overlay/Popover';\nexport { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription } from './components/ui/overlay/Sheet';\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './components/ui/overlay/Tooltip';\n\n// Store\nexport { useMdSidebarStore } from './store/useMdSidebarStore';\nexport { useModalManager } from './store/useModalManager';\nexport type { ModalData } from './store/useModalManager';\n\n// Enums\nexport { AccountSectionType } from './enums/AccountSectionType';\n\n// Hooks\nexport { default as usePasswordVisibility } from './hooks/usePasswordVisibility';\nexport { default as useCountdownTimer } from './hooks/useCountdownTimer';\nexport { default as useIsMobile } from './hooks/useIsMobile';\n\n// Utils\nexport { formatPhone, formatTimer, formatFullName, formatCPF, formatCardNumber } from './utils/format/masks';\nexport { timezoneService } from './modules/accounts/services/timezone.service';\nexport type { TimezoneOption } from './modules/accounts/services/timezone.service';\nexport { buildLocaleOptions, LANGUAGE_OPTIONS as LOCALE_LANGUAGE_OPTIONS } from './utils/intl/locales';\nexport type { LocaleOption } from './utils/intl/locales';\nexport { copyToClipboard, readFromClipboard } from './utils/browser/clipboard';\n\n// UI - Form (new widgets)\nexport { FormField } from './components/ui/form/FormField';\nexport { SelectField } from './components/ui/form/SelectField';\nexport { ComboboxField } from './components/ui/form/ComboboxField';\nexport type { ComboboxOption } from './components/ui/form/ComboboxField';\nexport { default as PhoneInput } from './components/ui/form/PhoneInput';\nexport { default as SwitchOptionFieldWithIcon } from './components/ui/form/SwitchOptionFieldWithIcon';\nexport { TextAreaField } from './components/ui/form/TextAreaField';\n\n// Account Module - Hooks\nexport {\n useUpdateAccount,\n useUpdateAccountUser,\n useUpdateAccountUserById,\n useDeleteAccountUser,\n useDeleteAccount,\n} from './modules/accounts/hooks/useAccountManagement';\n\n// Account Types\nexport type {\n UpdateAccountRequest,\n UpdateAccountUserRequest,\n ChangePasswordRequest,\n DeleteAccountActionResult,\n DeleteUserActionResult,\n UpdateAccountActionResult,\n UpdateUserActionResult,\n TwoFactorGenerateResult,\n TwoFactorActionResult,\n ContactResetResult,\n} from './modules/accounts/types';\n\nexport { default as AccountModals } from './components/account/AccountModals';\nexport { useAccountModals } from './store/useAccountModals';\nexport type { AccountModalsConfig } from './store/useAccountModals';\n\nexport { ModalManager } from './components/modals/ModalManager';\nexport { Modals } from './components/modals/Modals';\n\nexport { default as TwoFactorAuthModal } from './components/account/TwoFactorAuthModal';\nexport { default as DisableTwoFactorAuthModal } from './components/account/DisableTwoFactorAuthModal';\nexport { default as ConfirmGlobalPreferencesModal } from './components/account/ConfirmGlobalPreferencesModal';\nexport { MyProfileSection } from './components/account/sections/MyProfileSection';\nexport { PreferencesSection } from './components/account/sections/PreferencesSection';\nexport { SecuritySection } from './components/account/sections/SecuritySection';\nexport { ChangePasswordSection } from './components/account/sections/ChangePasswordSection';\nexport { ChangeEmailModal } from './components/account/sections/ChangeEmailModal';\nexport { ChangePhoneModal } from './components/account/sections/ChangePhoneModal';\n\n// Account Constants\nexport {\n GENDER_OPTIONS,\n CURRENCY_OPTIONS,\n TIME_FORMAT_OPTIONS,\n NOTIFICATION_TYPES,\n LANGUAGE_OPTIONS,\n} from './components/account/constants';\n"],"mappings":"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","names":["default","LANGUAGE_OPTIONS"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Types\nexport * from './modules/auth/schema';\nexport * from './modules/users/schema';\nexport * from './modules/whitelabel/schema';\nexport * from './infra/api/types';\n\n// Contexts\nexport * from './providers/query.provider';\nexport * from './providers/auth.provider';\nexport * from './providers/whitelabel.provider';\n\n// Hooks\nexport { useProjectUsers, projectUsersQueryKey } from './modules/projects/hooks/project-users.hook';\nexport type { ProjectUser, AccountUser, AddRemoveProjectUsersParams } from './modules/projects/types';\nexport { useUserQuery, useUserValidateSession, useInvalidateUser, useSetUserData, USER_QUERY_KEY } from './modules/auth/hooks/useUserQuery';\nexport { useSubscriptions, SUBSCRIPTIONS_QUERY_KEY } from './modules/subscriptions/hooks/list-subscriptions.hook';\nexport { useActiveSubscription } from './modules/subscriptions/hooks/find-active-subscription.hook';\nexport { useIaCredits } from './modules/ia-credits/hooks/ia-credits.hook';\nexport type { IaCreditsSummary, IaCreditOperation } from './modules/ia-credits/types';\nexport type { Subscription, SubscriptionItem, FindSubscriptionsParams } from './modules/subscriptions/types';\nexport { SubscriptionSchema, SubscriptionItemSchema } from './modules/subscriptions/types';\nexport { ADDON_IDS } from './modules/subscriptions/constants/addons.constants';\nexport type { AddonKindEnum } from './modules/subscriptions/constants/addons.constants';\n\n// Providers\nexport { QueryProvider } from './providers/query.provider';\n\n// Middleware\nexport { createAuthMiddleware } from './middlewares/create-auth-middleware';\nexport { createMiddlewareChain } from './middlewares/chain';\nexport { continueChain, stopChain } from './middlewares/types';\nexport type { MiddlewareFunction, MiddlewareConfig, MiddlewareResult } from './middlewares/types';\n\n// Utils\nexport { cn } from './infra/utils/clsx';\nexport { buildQueryParams } from './infra/utils/params';\nexport { parseSchema, parseResult } from './infra/utils/parser';\n\n// Layout\nexport { MainLayout, MainLayoutContent, MainLayoutSpacer, MainLayoutMain } from './components/layouts/MainLayout';\nexport { NavBar } from './components/layouts/NavBar';\nexport type { NavBarProps } from './components/layouts/NavBar';\nexport { AppNavBar } from './components/layouts/AppNavBar';\nexport type { AppNavBarProps } from './components/layouts/AppNavBar';\nexport { AppMobileNavBar } from './components/layouts/AppMobileNavBar';\nexport type { AppMobileNavBarProps } from './components/layouts/AppMobileNavBar';\nexport { SideBarNavigation } from './components/layouts/SideBarNavigation';\nexport { MdSideBarNavigation } from './components/layouts/MdSideBarNavigation';\nexport { NotificationItem } from './components/layouts/NotificationItem';\nexport type { NotificationItemProps } from './components/layouts/NotificationItem';\nexport { NotificationsPopover } from './components/layouts/NotificationsPopover';\nexport type { NotificationsPopoverProps, NotificationData } from './components/layouts/NotificationsPopover';\nexport { UsersSelectorPopover } from './components/layouts/UsersSelectorPopover';\nexport type { UsersSelectorPopoverProps, UserSelectorItem } from './components/layouts/UsersSelectorPopover';\nexport { ProfilePopover } from './components/layouts/ProfilePopover';\nexport type { ProfilePopoverProps, ProfileMenuItem } from './components/layouts/ProfilePopover';\nexport { NavBarItem } from './components/layouts/NavBarItem';\nexport type { NavBarItemProps } from './components/layouts/NavBarItem';\n\n// UI - Buttons\nexport { Button, buttonVariants } from './components/ui/buttons/Button';\nexport { CopyButton } from './components/ui/buttons/CopyButton';\nexport { default as CancelButton } from './components/ui/buttons/CancelButton';\n\n// UI - Data Display\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './components/ui/data-display/Accordion';\nexport { Badge, badgeVariants } from './components/ui/data-display/Badge';\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent } from './components/ui/data-display/Card';\nexport { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis } from './components/ui/data-display/Pagination';\nexport { ScrollArea, ScrollBar } from './components/ui/data-display/ScrollArea';\nexport { Separator } from './components/ui/data-display/Separator';\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption } from './components/ui/data-display/Table';\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from './components/ui/data-display/Tabs';\nexport { UserAvatar } from './components/ui/data-display/UserAvatar';\nexport type { UserAvatarProps } from './components/ui/data-display/UserAvatar';\n\n// UI - Feedback\nexport { default as CircularProgress } from './components/ui/feedback/CircularProgress';\nexport { default as DefaultCircularProgress } from './components/ui/feedback/DefaultCircularProgress';\nexport { Progress } from './components/ui/feedback/Progress';\nexport { LoadingOverlay } from './components/ui/feedback/LoadingOverlay';\nexport { Toast, toastVariants, toastIconContainerVariants } from './components/ui/feedback/Toast';\nexport type { ToastProps } from './components/ui/feedback/Toast';\n\n// UI - Form\nexport { Calendar, CalendarDayButton } from './components/ui/form/Calendar';\nexport { Checkbox } from './components/ui/form/Checkbox';\nexport { DatePicker } from './components/ui/form/DatePicker';\nexport { DateRangePicker } from './components/ui/form/DateRangePicker';\nexport { Input } from './components/ui/form/Input';\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from './components/ui/form/InputOtp';\nexport { RadioGroup, RadioGroupItem } from './components/ui/form/RadioGroup';\nexport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './components/ui/form/Select';\nexport { Switch } from './components/ui/form/Switch';\nexport { Textarea } from './components/ui/form/Textarea';\n\n// UI - Overlay\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator } from './components/ui/overlay/Command';\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/ui/overlay/Dialog';\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from './components/ui/overlay/Popover';\nexport { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription } from './components/ui/overlay/Sheet';\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './components/ui/overlay/Tooltip';\n\n// Store\nexport { useMdSidebarStore } from './store/useMdSidebarStore';\nexport { useModalManager } from './store/useModalManager';\nexport type { ModalData } from './store/useModalManager';\n\n// Enums\nexport { AccountSectionType } from './enums/AccountSectionType';\n\n// Hooks\nexport { default as usePasswordVisibility } from './hooks/usePasswordVisibility';\nexport { default as useCountdownTimer } from './hooks/useCountdownTimer';\nexport { default as useIsMobile } from './hooks/useIsMobile';\n\n// Utils\nexport { formatPhone, formatTimer, formatFullName, formatCPF, formatCardNumber } from './utils/format/masks';\nexport { timezoneService } from './modules/accounts/services/timezone.service';\nexport type { TimezoneOption } from './modules/accounts/services/timezone.service';\nexport { buildLocaleOptions, LANGUAGE_OPTIONS as LOCALE_LANGUAGE_OPTIONS } from './utils/intl/locales';\nexport type { LocaleOption } from './utils/intl/locales';\nexport { copyToClipboard, readFromClipboard } from './utils/browser/clipboard';\n\n// UI - Form (new widgets)\nexport { FormField } from './components/ui/form/FormField';\nexport { SelectField } from './components/ui/form/SelectField';\nexport { ComboboxField } from './components/ui/form/ComboboxField';\nexport type { ComboboxOption } from './components/ui/form/ComboboxField';\nexport { default as PhoneInput } from './components/ui/form/PhoneInput';\nexport { default as SwitchOptionFieldWithIcon } from './components/ui/form/SwitchOptionFieldWithIcon';\nexport { TextAreaField } from './components/ui/form/TextAreaField';\n\n// Account Module - Hooks\nexport {\n useUpdateAccount,\n useUpdateAccountUser,\n useUpdateAccountUserById,\n useDeleteAccountUser,\n useDeleteAccount,\n} from './modules/accounts/hooks/useAccountManagement';\n\n// Account Types\nexport type {\n UpdateAccountRequest,\n UpdateAccountUserRequest,\n ChangePasswordRequest,\n DeleteAccountActionResult,\n DeleteUserActionResult,\n UpdateAccountActionResult,\n UpdateUserActionResult,\n TwoFactorGenerateResult,\n TwoFactorActionResult,\n ContactResetResult,\n} from './modules/accounts/types';\n\nexport { default as AccountModals } from './components/account/AccountModals';\nexport { useAccountModals } from './store/useAccountModals';\nexport type { AccountModalsConfig } from './store/useAccountModals';\n\nexport { ModalManager } from './components/modals/ModalManager';\nexport { Modals } from './components/modals/Modals';\n\nexport { default as TwoFactorAuthModal } from './components/account/TwoFactorAuthModal';\nexport { default as DisableTwoFactorAuthModal } from './components/account/DisableTwoFactorAuthModal';\nexport { default as ConfirmGlobalPreferencesModal } from './components/account/ConfirmGlobalPreferencesModal';\nexport { MyProfileSection } from './components/account/sections/MyProfileSection';\nexport { PreferencesSection } from './components/account/sections/PreferencesSection';\nexport { SecuritySection } from './components/account/sections/SecuritySection';\nexport { ChangePasswordSection } from './components/account/sections/ChangePasswordSection';\nexport { ChangeEmailModal } from './components/account/sections/ChangeEmailModal';\nexport { ChangePhoneModal } from './components/account/sections/ChangePhoneModal';\n\n// Account Constants\nexport {\n GENDER_OPTIONS,\n CURRENCY_OPTIONS,\n TIME_FORMAT_OPTIONS,\n NOTIFICATION_TYPES,\n LANGUAGE_OPTIONS,\n} from './components/account/constants';\n"],"mappings":"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","names":["default","LANGUAGE_OPTIONS"]}
|
|
@@ -7,8 +7,12 @@ async function listAccountUsersAction(params) {
|
|
|
7
7
|
const { users, total } = await accountService.listAccountUsers(params);
|
|
8
8
|
return { success: true, data: users, total };
|
|
9
9
|
} catch (error) {
|
|
10
|
-
if (error instanceof ApiError)
|
|
11
|
-
|
|
10
|
+
if (error instanceof ApiError)
|
|
11
|
+
return { success: false, error: error.message };
|
|
12
|
+
return {
|
|
13
|
+
success: false,
|
|
14
|
+
error: "Erro ao listar usu\xE1rios. Tente novamente."
|
|
15
|
+
};
|
|
12
16
|
}
|
|
13
17
|
}
|
|
14
18
|
async function updateUserAction(user) {
|
|
@@ -16,8 +20,12 @@ async function updateUserAction(user) {
|
|
|
16
20
|
const result = await accountService.updateAccountUser(user);
|
|
17
21
|
return { success: true, data: result };
|
|
18
22
|
} catch (error) {
|
|
19
|
-
if (error instanceof ApiError)
|
|
20
|
-
|
|
23
|
+
if (error instanceof ApiError)
|
|
24
|
+
return { success: false, error: error.message };
|
|
25
|
+
return {
|
|
26
|
+
success: false,
|
|
27
|
+
error: "Erro ao atualizar usu\xE1rio. Tente novamente."
|
|
28
|
+
};
|
|
21
29
|
}
|
|
22
30
|
}
|
|
23
31
|
async function updateAccountUserByIdAction(userId, user) {
|
|
@@ -25,8 +33,12 @@ async function updateAccountUserByIdAction(userId, user) {
|
|
|
25
33
|
const result = await accountService.updateAccountUserById(userId, user);
|
|
26
34
|
return { success: true, data: result };
|
|
27
35
|
} catch (error) {
|
|
28
|
-
if (error instanceof ApiError)
|
|
29
|
-
|
|
36
|
+
if (error instanceof ApiError)
|
|
37
|
+
return { success: false, error: error.message };
|
|
38
|
+
return {
|
|
39
|
+
success: false,
|
|
40
|
+
error: "Erro ao atualizar usu\xE1rio. Tente novamente."
|
|
41
|
+
};
|
|
30
42
|
}
|
|
31
43
|
}
|
|
32
44
|
async function updateAccountAction(data) {
|
|
@@ -34,8 +46,12 @@ async function updateAccountAction(data) {
|
|
|
34
46
|
await accountService.updateAccount(data);
|
|
35
47
|
return { success: true };
|
|
36
48
|
} catch (error) {
|
|
37
|
-
if (error instanceof ApiError)
|
|
38
|
-
|
|
49
|
+
if (error instanceof ApiError)
|
|
50
|
+
return { success: false, error: error.message };
|
|
51
|
+
return {
|
|
52
|
+
success: false,
|
|
53
|
+
error: "Erro ao atualizar conta. Tente novamente."
|
|
54
|
+
};
|
|
39
55
|
}
|
|
40
56
|
}
|
|
41
57
|
async function deleteAccountUserAction(userId) {
|
|
@@ -43,8 +59,12 @@ async function deleteAccountUserAction(userId) {
|
|
|
43
59
|
await accountService.deleteAccountUser(userId);
|
|
44
60
|
return { success: true };
|
|
45
61
|
} catch (error) {
|
|
46
|
-
if (error instanceof ApiError)
|
|
47
|
-
|
|
62
|
+
if (error instanceof ApiError)
|
|
63
|
+
return { success: false, error: error.message };
|
|
64
|
+
return {
|
|
65
|
+
success: false,
|
|
66
|
+
error: "Erro ao remover usu\xE1rio. Tente novamente."
|
|
67
|
+
};
|
|
48
68
|
}
|
|
49
69
|
}
|
|
50
70
|
async function deleteAccountAction() {
|
|
@@ -52,7 +72,8 @@ async function deleteAccountAction() {
|
|
|
52
72
|
await accountService.deleteAccount();
|
|
53
73
|
return { success: true };
|
|
54
74
|
} catch (error) {
|
|
55
|
-
if (error instanceof ApiError)
|
|
75
|
+
if (error instanceof ApiError)
|
|
76
|
+
return { success: false, error: error.message };
|
|
56
77
|
return { success: false, error: "Erro ao excluir conta. Tente novamente." };
|
|
57
78
|
}
|
|
58
79
|
}
|
|
@@ -61,7 +82,8 @@ async function createAccountUserAction(user) {
|
|
|
61
82
|
const result = await accountService.createAccountUser(user);
|
|
62
83
|
return { success: true, data: result.data };
|
|
63
84
|
} catch (error) {
|
|
64
|
-
if (error instanceof ApiError)
|
|
85
|
+
if (error instanceof ApiError)
|
|
86
|
+
return { success: false, error: error.message };
|
|
65
87
|
return { success: false, error: "Erro ao criar usu\xE1rio. Tente novamente." };
|
|
66
88
|
}
|
|
67
89
|
}
|
|
@@ -70,7 +92,8 @@ async function changePasswordAction(data) {
|
|
|
70
92
|
await accountService.changePassword(data);
|
|
71
93
|
return { success: true };
|
|
72
94
|
} catch (error) {
|
|
73
|
-
if (error instanceof ApiError)
|
|
95
|
+
if (error instanceof ApiError)
|
|
96
|
+
return { success: false, error: error.message };
|
|
74
97
|
return { success: false, error: "Erro ao alterar senha. Tente novamente." };
|
|
75
98
|
}
|
|
76
99
|
}
|
|
@@ -79,8 +102,12 @@ async function requestEmailChangeAction(newEmail) {
|
|
|
79
102
|
await accountService.requestContactReset("email", newEmail);
|
|
80
103
|
return { success: true };
|
|
81
104
|
} catch (error) {
|
|
82
|
-
if (error instanceof ApiError)
|
|
83
|
-
|
|
105
|
+
if (error instanceof ApiError)
|
|
106
|
+
return { success: false, error: error.message };
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: "E-mail j\xE1 existente ou ocorreu um erro. Tente novamente mais tarde."
|
|
110
|
+
};
|
|
84
111
|
}
|
|
85
112
|
}
|
|
86
113
|
async function confirmEmailChangeAction(token, newEmail) {
|
|
@@ -88,8 +115,12 @@ async function confirmEmailChangeAction(token, newEmail) {
|
|
|
88
115
|
await accountService.confirmContactReset("email", token, newEmail);
|
|
89
116
|
return { success: true };
|
|
90
117
|
} catch (error) {
|
|
91
|
-
if (error instanceof ApiError)
|
|
92
|
-
|
|
118
|
+
if (error instanceof ApiError)
|
|
119
|
+
return { success: false, error: error.message };
|
|
120
|
+
return {
|
|
121
|
+
success: false,
|
|
122
|
+
error: "C\xF3digo inv\xE1lido ou expirado. Tente novamente."
|
|
123
|
+
};
|
|
93
124
|
}
|
|
94
125
|
}
|
|
95
126
|
async function requestPhoneChangeAction(newPhone) {
|
|
@@ -97,8 +128,12 @@ async function requestPhoneChangeAction(newPhone) {
|
|
|
97
128
|
await accountService.requestContactReset("phone", newPhone);
|
|
98
129
|
return { success: true };
|
|
99
130
|
} catch (error) {
|
|
100
|
-
if (error instanceof ApiError)
|
|
101
|
-
|
|
131
|
+
if (error instanceof ApiError)
|
|
132
|
+
return { success: false, error: error.message };
|
|
133
|
+
return {
|
|
134
|
+
success: false,
|
|
135
|
+
error: "N\xFAmero j\xE1 existente ou ocorreu um erro. Tente novamente mais tarde."
|
|
136
|
+
};
|
|
102
137
|
}
|
|
103
138
|
}
|
|
104
139
|
async function confirmPhoneChangeAction(token, newPhone) {
|
|
@@ -106,41 +141,57 @@ async function confirmPhoneChangeAction(token, newPhone) {
|
|
|
106
141
|
await accountService.confirmContactReset("phone", token, newPhone);
|
|
107
142
|
return { success: true };
|
|
108
143
|
} catch (error) {
|
|
109
|
-
if (error instanceof ApiError)
|
|
110
|
-
|
|
144
|
+
if (error instanceof ApiError)
|
|
145
|
+
return { success: false, error: error.message };
|
|
146
|
+
return {
|
|
147
|
+
success: false,
|
|
148
|
+
error: "C\xF3digo inv\xE1lido ou expirado. Tente novamente."
|
|
149
|
+
};
|
|
111
150
|
}
|
|
112
151
|
}
|
|
113
152
|
async function generateTwoFactorAction() {
|
|
114
153
|
try {
|
|
115
154
|
const result = await twoFactorService.generate();
|
|
116
|
-
return {
|
|
117
|
-
|
|
118
|
-
|
|
155
|
+
return {
|
|
156
|
+
success: true,
|
|
157
|
+
qrcode: result.data.qrcode,
|
|
158
|
+
backupCodes: result.data.backup_codes
|
|
159
|
+
};
|
|
160
|
+
} catch (error) {
|
|
161
|
+
if (error instanceof ApiError)
|
|
162
|
+
return { success: false, error: error.message };
|
|
119
163
|
return { success: false, error: "Erro ao gerar QR Code. Tente novamente." };
|
|
120
164
|
}
|
|
121
165
|
}
|
|
122
166
|
async function confirmTwoFactorAction(code) {
|
|
123
167
|
try {
|
|
124
168
|
await twoFactorService.confirm(code);
|
|
125
|
-
|
|
169
|
+
await accountService.updateAccountUser({ two_factor_authentication: true });
|
|
126
170
|
} catch (error) {
|
|
127
|
-
if (error instanceof ApiError)
|
|
171
|
+
if (error instanceof ApiError)
|
|
172
|
+
return { success: false, error: error.message };
|
|
128
173
|
return { success: false, error: "C\xF3digo inv\xE1lido. Tente novamente." };
|
|
129
174
|
}
|
|
175
|
+
return { success: true };
|
|
130
176
|
}
|
|
131
177
|
async function disableTwoFactorAction(code) {
|
|
132
178
|
try {
|
|
133
179
|
await twoFactorService.verify(code);
|
|
134
180
|
} catch (error) {
|
|
135
|
-
if (error instanceof ApiError)
|
|
181
|
+
if (error instanceof ApiError)
|
|
182
|
+
return { success: false, error: error.message };
|
|
136
183
|
return { success: false, error: "C\xF3digo inv\xE1lido. Tente novamente." };
|
|
137
184
|
}
|
|
138
185
|
try {
|
|
139
186
|
await twoFactorService.disable();
|
|
140
187
|
return { success: true };
|
|
141
188
|
} catch (error) {
|
|
142
|
-
if (error instanceof ApiError)
|
|
143
|
-
|
|
189
|
+
if (error instanceof ApiError)
|
|
190
|
+
return { success: false, error: error.message };
|
|
191
|
+
return {
|
|
192
|
+
success: false,
|
|
193
|
+
error: "Erro ao desabilitar 2FA. Tente novamente."
|
|
194
|
+
};
|
|
144
195
|
}
|
|
145
196
|
}
|
|
146
197
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/accounts/actions/account-management.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { accountService } from '../services/account.service';\r\nimport { ApiError } from '../../../infra/api/types';\r\nimport type {\r\n AccountUsersPaginationParams,\r\n AccountUsersActionResult,\r\n ChangePasswordActionResult,\r\n ChangePasswordRequest,\r\n ContactResetResult,\r\n CreateAccountUserRequest,\r\n DeleteAccountActionResult,\r\n DeleteUserActionResult,\r\n TwoFactorActionResult,\r\n TwoFactorGenerateResult,\r\n UpdateAccountActionResult,\r\n UpdateAccountRequest,\r\n UpdateAccountUserRequest,\r\n UpdateUserActionResult,\r\n} from '../types';\r\nimport { twoFactorService } from '../services/two-factor.service';\r\n\r\nexport async function listAccountUsersAction(\r\n params?: AccountUsersPaginationParams\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const { users, total } = await accountService.listAccountUsers(params);\r\n return { success: true, data: users, total };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao listar usuários. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function updateUserAction(\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUser(user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao atualizar usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function updateAccountUserByIdAction(\r\n userId: number,\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUserById(userId, user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao atualizar usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function updateAccountAction(\r\n data: UpdateAccountRequest\r\n): Promise<UpdateAccountActionResult> {\r\n try {\r\n await accountService.updateAccount(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao atualizar conta. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function deleteAccountUserAction(userId: number): Promise<DeleteUserActionResult> {\r\n try {\r\n await accountService.deleteAccountUser(userId);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao remover usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function deleteAccountAction(): Promise<DeleteAccountActionResult> {\r\n try {\r\n await accountService.deleteAccount();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao excluir conta. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function createAccountUserAction(\r\n user: CreateAccountUserRequest\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const result = await accountService.createAccountUser(user);\r\n return { success: true, data: result.data };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao criar usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function changePasswordAction(\r\n data: ChangePasswordRequest\r\n): Promise<ChangePasswordActionResult> {\r\n try {\r\n await accountService.changePassword(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao alterar senha. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function requestEmailChangeAction(newEmail: string): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset('email', newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.' };\r\n }\r\n}\r\n\r\nexport async function confirmEmailChangeAction(\r\n token: string,\r\n newEmail: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset('email', token, newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido ou expirado. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function requestPhoneChangeAction(newPhone: string): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset('phone', newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.' };\r\n }\r\n}\r\n\r\nexport async function confirmPhoneChangeAction(\r\n token: string,\r\n newPhone: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset('phone', token, newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido ou expirado. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function generateTwoFactorAction(): Promise<TwoFactorGenerateResult> {\r\n try {\r\n const result = await twoFactorService.generate();\r\n return { success: true, qrcode: result.data.qrcode, backupCodes: result.data.backup_codes };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao gerar QR Code. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function confirmTwoFactorAction(code: string): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.confirm(code);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function disableTwoFactorAction(code: string): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.verify(code);\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido. Tente novamente.' };\r\n }\r\n\r\n try {\r\n await twoFactorService.disable();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao desabilitar 2FA. Tente novamente.' };\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/accounts/actions/account-management.action.ts"],"sourcesContent":["\"use server\";\r\n\r\nimport { accountService } from \"../services/account.service\";\r\nimport { ApiError } from \"../../../infra/api/types\";\r\nimport type {\r\n AccountUsersPaginationParams,\r\n AccountUsersActionResult,\r\n ChangePasswordActionResult,\r\n ChangePasswordRequest,\r\n ContactResetResult,\r\n CreateAccountUserRequest,\r\n DeleteAccountActionResult,\r\n DeleteUserActionResult,\r\n TwoFactorActionResult,\r\n TwoFactorGenerateResult,\r\n UpdateAccountActionResult,\r\n UpdateAccountRequest,\r\n UpdateAccountUserRequest,\r\n UpdateUserActionResult,\r\n} from \"../types\";\r\nimport { twoFactorService } from \"../services/two-factor.service\";\r\n\r\nexport async function listAccountUsersAction(\r\n params?: AccountUsersPaginationParams\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const { users, total } = await accountService.listAccountUsers(params);\r\n return { success: true, data: users, total };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao listar usuários. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function updateUserAction(\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUser(user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao atualizar usuário. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function updateAccountUserByIdAction(\r\n userId: number,\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUserById(userId, user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao atualizar usuário. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function updateAccountAction(\r\n data: UpdateAccountRequest\r\n): Promise<UpdateAccountActionResult> {\r\n try {\r\n await accountService.updateAccount(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao atualizar conta. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function deleteAccountUserAction(\r\n userId: number\r\n): Promise<DeleteUserActionResult> {\r\n try {\r\n await accountService.deleteAccountUser(userId);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao remover usuário. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function deleteAccountAction(): Promise<DeleteAccountActionResult> {\r\n try {\r\n await accountService.deleteAccount();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao excluir conta. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function createAccountUserAction(\r\n user: CreateAccountUserRequest\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const result = await accountService.createAccountUser(user);\r\n return { success: true, data: result.data };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao criar usuário. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function changePasswordAction(\r\n data: ChangePasswordRequest\r\n): Promise<ChangePasswordActionResult> {\r\n try {\r\n await accountService.changePassword(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao alterar senha. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function requestEmailChangeAction(\r\n newEmail: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset(\"email\", newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error:\r\n \"E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function confirmEmailChangeAction(\r\n token: string,\r\n newEmail: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset(\"email\", token, newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Código inválido ou expirado. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function requestPhoneChangeAction(\r\n newPhone: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset(\"phone\", newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error:\r\n \"Número já existente ou ocorreu um erro. Tente novamente mais tarde.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function confirmPhoneChangeAction(\r\n token: string,\r\n newPhone: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset(\"phone\", token, newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Código inválido ou expirado. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function generateTwoFactorAction(): Promise<TwoFactorGenerateResult> {\r\n try {\r\n const result = await twoFactorService.generate();\r\n return {\r\n success: true,\r\n qrcode: result.data.qrcode,\r\n backupCodes: result.data.backup_codes,\r\n };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao gerar QR Code. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function confirmTwoFactorAction(\r\n code: string\r\n): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.confirm(code);\r\n await accountService.updateAccountUser({ two_factor_authentication: true });\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Código inválido. Tente novamente.\" };\r\n }\r\n\r\n return { success: true };\r\n}\r\n\r\nexport async function disableTwoFactorAction(\r\n code: string\r\n): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.verify(code);\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Código inválido. Tente novamente.\" };\r\n }\r\n\r\n try {\r\n await twoFactorService.disable();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao desabilitar 2FA. Tente novamente.\",\r\n };\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import { projectUsersService } from "../services/project-users.service";
|
|
3
|
+
async function addProjectUserAction(params) {
|
|
4
|
+
return projectUsersService.addToProject(params);
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
addProjectUserAction
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=add-project-user.action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/projects/actions/add-project-user.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { projectUsersService } from '../services/project-users.service';\r\nimport type { AddRemoveProjectUsersParams } from '../types';\r\n\r\nexport async function addProjectUserAction(params: AddRemoveProjectUsersParams): Promise<void> {\r\n return projectUsersService.addToProject(params);\r\n}\r\n"],"mappings":";AAEA,SAAS,2BAA2B;AAGpC,eAAsB,qBAAqB,QAAoD;AAC7F,SAAO,oBAAoB,aAAa,MAAM;AAChD;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import { projectUsersService } from "../services/project-users.service";
|
|
3
|
+
async function listAvailableUsersAction(id_project) {
|
|
4
|
+
return projectUsersService.listNotInProject(id_project);
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
listAvailableUsersAction
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=list-available-users.action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/projects/actions/list-available-users.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { projectUsersService } from '../services/project-users.service';\r\nimport type { AccountUser } from '../types';\r\n\r\nexport async function listAvailableUsersAction(id_project: number): Promise<AccountUser[]> {\r\n return projectUsersService.listNotInProject(id_project);\r\n}\r\n"],"mappings":";AAEA,SAAS,2BAA2B;AAGpC,eAAsB,yBAAyB,YAA4C;AACzF,SAAO,oBAAoB,iBAAiB,UAAU;AACxD;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import { projectUsersService } from "../services/project-users.service";
|
|
3
|
+
async function listProjectUsersAction(id_project) {
|
|
4
|
+
return projectUsersService.listInProject(id_project);
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
listProjectUsersAction
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=list-project-users.action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/projects/actions/list-project-users.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { projectUsersService } from '../services/project-users.service';\r\nimport type { ProjectUser } from '../types';\r\n\r\nexport async function listProjectUsersAction(id_project: number): Promise<ProjectUser[]> {\r\n return projectUsersService.listInProject(id_project);\r\n}\r\n"],"mappings":";AAEA,SAAS,2BAA2B;AAGpC,eAAsB,uBAAuB,YAA4C;AACvF,SAAO,oBAAoB,cAAc,UAAU;AACrD;","names":[]}
|