Skip to content

Commit 0481f58

Browse files
committed
Merge branch 'release/0.0.3'
2 parents 2e19750 + 6abaaa3 commit 0481f58

File tree

211 files changed

+13907
-3172
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

211 files changed

+13907
-3172
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8" />
5-
<link rel="icon" type="image/png" href="/assets/images/evolution-logo.png" />
5+
<link rel="icon" type="image/png" href="https://evolution-api.com/files/evo/favicon.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<title>Evolution Manager</title>
88
</head>

package-lock.json

Lines changed: 112 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"@radix-ui/react-slot": "^1.1.0",
2424
"@radix-ui/react-switch": "^1.1.0",
2525
"@radix-ui/react-tabs": "^1.1.0",
26+
"@tanstack/react-query": "^5.52.1",
2627
"@tanstack/react-table": "^8.20.1",
2728
"axios": "^1.7.2",
2829
"class-variance-authority": "^0.7.0",
@@ -40,6 +41,7 @@
4041
"react-tag-input": "^6.10.3",
4142
"react-toastify": "^10.0.5",
4243
"recharts": "^2.12.7",
44+
"socket.io-client": "^4.8.1",
4345
"tailwind-merge": "^2.4.0",
4446
"tailwindcss-animate": "^1.0.7",
4547
"uuid": "^10.0.0",

src/components/footer.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
1-
import { useEffect, useState } from "react";
1+
import { useMemo } from "react";
22
import { useTranslation } from "react-i18next";
33

4-
import { verifyServer } from "@/services/auth.service";
4+
import { useVerifyServer } from "@/lib/queries/auth/verifyServer";
5+
import { getToken, TOKEN_ID } from "@/lib/queries/token";
56

67
import { Button } from "./ui/button";
78

89
function Footer() {
910
const { t } = useTranslation();
1011

11-
const [version, setVersion] = useState<string | null>(null);
12-
const clientName = localStorage.getItem("clientName");
12+
const url = getToken(TOKEN_ID.API_URL);
13+
const { data: serverInfo } = useVerifyServer({ url });
1314

14-
useEffect(() => {
15-
const url = localStorage.getItem("apiUrl");
16-
17-
if (!url) return;
18-
19-
verifyServer(url).then((data) => setVersion(data.version));
20-
}, []);
15+
const clientName = useMemo(() => serverInfo?.clientName, [serverInfo]);
16+
const version = useMemo(() => serverInfo?.version, [serverInfo]);
2117

2218
const links = [
2319
{

src/components/header.tsx

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { DoorOpen } from "lucide-react";
2-
import { useEffect, useState } from "react";
2+
import { useState } from "react";
33
import { Link, useNavigate } from "react-router-dom";
44

5-
import { logout } from "@/services/auth.service";
6-
import { fetchInstance } from "@/services/instances.service";
7-
8-
import { Instance } from "@/types/evolution.types";
5+
import { useFetchInstance } from "@/lib/queries/instance/fetchInstance";
6+
import { logout } from "@/lib/queries/token";
97

8+
import { LanguageToggle } from "./language-toggle";
109
import { ModeToggle } from "./mode-toggle";
10+
import { useTheme } from "./theme-provider";
1111
import { Avatar, AvatarImage } from "./ui/avatar";
1212
import { Button } from "./ui/button";
1313
import {
@@ -17,11 +17,11 @@ import {
1717
DialogFooter,
1818
DialogHeader,
1919
} from "./ui/dialog";
20-
import { LanguageToggle } from "./language-toggle";
2120

2221
function Header({ instanceId }: { instanceId?: string }) {
2322
const [logoutConfirmation, setLogoutConfirmation] = useState(false);
2423
const navigate = useNavigate();
24+
const { theme } = useTheme();
2525

2626
const handleClose = () => {
2727
logout();
@@ -32,22 +32,7 @@ function Header({ instanceId }: { instanceId?: string }) {
3232
navigate("/manager/");
3333
};
3434

35-
const [instance, setInstance] = useState<Instance | null>(null);
36-
37-
useEffect(() => {
38-
if (instanceId) {
39-
const fetchData = async (instanceId: string) => {
40-
try {
41-
const data = await fetchInstance(instanceId);
42-
setInstance(data[0] || null);
43-
} catch (error) {
44-
console.error("Erro ao buscar dados:", error);
45-
}
46-
};
47-
48-
fetchData(instanceId);
49-
}
50-
}, [instanceId]);
35+
const { data: instance } = useFetchInstance({ instanceId });
5136

5237
return (
5338
<header className="flex items-center justify-between px-4 py-2">
@@ -57,11 +42,14 @@ function Header({ instanceId }: { instanceId?: string }) {
5742
className="flex h-8 items-center gap-4"
5843
>
5944
<img
60-
src="/assets/images/evolution-logo.png"
45+
src={
46+
theme === "dark"
47+
? "https://evolution-api.com/files/evo/evolution-logo-white.svg"
48+
: "https://evolution-api.com/files/evo/evolution-logo.svg"
49+
}
6150
alt="Logo"
6251
className="h-full"
6352
/>
64-
<span>Evolution Manager</span>
6553
</Link>
6654
<div className="flex items-center gap-4">
6755
{instanceId && (

src/components/instance-token.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export function InstanceToken({
2424
)}
2525
>
2626
<pre className="block truncate text-xs">
27-
{visible ? token : token.replace(/\w/g, "*")}
27+
{visible ? token : token?.replace(/\w/g, "*")}
2828
</pre>
2929
<Button
3030
variant="ghost"

src/components/providers/protected-route.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import React from "react";
22
import { Navigate } from "react-router-dom";
33

4+
import { getToken, TOKEN_ID } from "@/lib/queries/token";
5+
46
type ProtectedRouteProps = {
57
children: React.ReactNode;
68
};
79

810
const ProtectedRoute = ({ children }: ProtectedRouteProps) => {
9-
const apiUrl = localStorage.getItem("apiUrl");
10-
const token = localStorage.getItem("token");
11-
const version = localStorage.getItem("version");
11+
const apiUrl = getToken(TOKEN_ID.API_URL);
12+
const token = getToken(TOKEN_ID.TOKEN);
13+
const version = getToken(TOKEN_ID.VERSION);
1214

1315
if (!apiUrl || !token || !version) {
1416
return <Navigate to="/manager/login" />;

src/components/providers/public-route.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import React from "react";
22
import { Navigate } from "react-router-dom";
33

4+
import { getToken, TOKEN_ID } from "@/lib/queries/token";
5+
46
type PublicRouteProps = {
57
children: React.ReactNode;
68
};
79

810
const PublicRoute = ({ children }: PublicRouteProps) => {
9-
const apiUrl = localStorage.getItem("apiUrl");
10-
const token = localStorage.getItem("token");
11-
const version = localStorage.getItem("version");
11+
const apiUrl = getToken(TOKEN_ID.API_URL);
12+
const token = getToken(TOKEN_ID.TOKEN);
13+
const version = getToken(TOKEN_ID.VERSION);
1214

1315
if (apiUrl && token && version) {
1416
return <Navigate to="/" />;

0 commit comments

Comments
 (0)