change structure socket and add permission
This commit is contained in:
@@ -1,16 +1,23 @@
|
|||||||
|
"use client";
|
||||||
import HeaderWithSidebar from "@/components/layouts/dashboard/headerWithSidebar";
|
import HeaderWithSidebar from "@/components/layouts/dashboard/headerWithSidebar";
|
||||||
import CallWidget from "@/components/widget/call";
|
import CallWidget from "@/components/widget/call";
|
||||||
import WithWidgetMiddleware from "@/core/middlewares/withWidget";
|
import WithWidgetMiddleware from "@/core/middlewares/withWidget";
|
||||||
import { SocketProvider } from "@/lib/contexts/socket";
|
import { SocketProvider } from "@/lib/contexts/socket";
|
||||||
|
import { usePermissions } from "@/lib/hooks/usePermissions";
|
||||||
import { Stack } from "@mui/material";
|
import { Stack } from "@mui/material";
|
||||||
|
|
||||||
const Layout = ({ children }) => {
|
const Layout = ({ children }) => {
|
||||||
|
const { data: permissions } = usePermissions();
|
||||||
|
const isCallWidgetEnabled = permissions?.some(
|
||||||
|
(permission) => permission === "manage_calls"
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SocketProvider>
|
<SocketProvider>
|
||||||
<Stack sx={{ width: "100%", height: "100%" }}>
|
<Stack sx={{ width: "100%", height: "100%" }}>
|
||||||
<HeaderWithSidebar>{children}</HeaderWithSidebar>
|
<HeaderWithSidebar>{children}</HeaderWithSidebar>
|
||||||
</Stack>
|
</Stack>
|
||||||
<WithWidgetMiddleware enable={true}>
|
<WithWidgetMiddleware enable={isCallWidgetEnabled}>
|
||||||
<CallWidget />
|
<CallWidget />
|
||||||
</WithWidgetMiddleware>
|
</WithWidgetMiddleware>
|
||||||
</SocketProvider>
|
</SocketProvider>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ const CallHistory = ({ tab }) => {
|
|||||||
<ErrorOrEmpty isErrorOrEmpty="empty" />
|
<ErrorOrEmpty isErrorOrEmpty="empty" />
|
||||||
) : (
|
) : (
|
||||||
<Box>
|
<Box>
|
||||||
<ListItemOfCalls historyItem={firstItemOfHistory} />
|
<ListItemOfCalls key={'first'} historyItem={firstItemOfHistory} />
|
||||||
{historyList && (
|
{historyList && (
|
||||||
<Divider>
|
<Divider>
|
||||||
<Chip
|
<Chip
|
||||||
|
|||||||
@@ -1,23 +1,9 @@
|
|||||||
"use client";
|
"use client";
|
||||||
import { CallProvider } from "@/lib/contexts/call";
|
import { CallProvider } from "@/lib/contexts/call";
|
||||||
import { CategoriesProvider } from "@/lib/contexts/category";
|
import { CategoriesProvider } from "@/lib/contexts/category";
|
||||||
import { useSocket } from "@/lib/contexts/socket";
|
|
||||||
import { useEffect } from "react";
|
|
||||||
import CallWidgetDialog from "./CallWidgetDialog";
|
import CallWidgetDialog from "./CallWidgetDialog";
|
||||||
|
|
||||||
const CallWidget = () => {
|
const CallWidget = () => {
|
||||||
const { socket, status } = useSocket();
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (status == "connected") return;
|
|
||||||
|
|
||||||
socket.connect();
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
socket.disconnect();
|
|
||||||
};
|
|
||||||
}, [socket]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CategoriesProvider>
|
<CategoriesProvider>
|
||||||
<CallProvider>
|
<CallProvider>
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ export const GET_USER_ROUTE = api + "/profile/info";
|
|||||||
export const CHANGE_USER_PASSWORD = api + "/profile/change_password";
|
export const CHANGE_USER_PASSWORD = api + "/profile/change_password";
|
||||||
export const GET_USER_LOGIN_ROUTE = api + "/auth/login";
|
export const GET_USER_LOGIN_ROUTE = api + "/auth/login";
|
||||||
export const GET_USER_LOGOUT_ROUTE = api + "/auth/logout";
|
export const GET_USER_LOGOUT_ROUTE = api + "/auth/logout";
|
||||||
export const GET_PERMISSIONS_ROUTE = "";
|
export const GET_PERMISSIONS_ROUTE = api + "/profile/permissions";
|
||||||
export const GET_SIDEBAR_BADGE_ROUTE = "";
|
export const GET_SIDEBAR_BADGE_ROUTE = "";
|
||||||
|
|
||||||
export const GET_CATEGORY = api + "/categories";
|
export const GET_CATEGORY = api + "/categories/list";
|
||||||
|
|
||||||
export const GET_CALLER_HISTORY = api + "/calls/list";
|
export const GET_CALLER_HISTORY = api + "/calls/list";
|
||||||
export const CALL_ACTION = api + "/calls";
|
export const CALL_ACTION = api + "/calls";
|
||||||
|
|||||||
@@ -92,6 +92,16 @@ export const SocketProvider = ({ children }) => {
|
|||||||
}
|
}
|
||||||
}, [status]);
|
}, [status]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (status == "connected") return;
|
||||||
|
|
||||||
|
socket.connect();
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
socket.disconnect();
|
||||||
|
};
|
||||||
|
}, [socket]);
|
||||||
|
|
||||||
const contextValue = useMemo(() => ({ socket, status }), [socket, status]);
|
const contextValue = useMemo(() => ({ socket, status }), [socket, status]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user