formatted

This commit is contained in:
Amirhossein Mahmoodi
2024-07-09 13:58:13 +03:30
parent 863bdaca95
commit bc73725138
82 changed files with 2206 additions and 3082 deletions

View File

@@ -1,15 +1,11 @@
import {createContext, useState} from "react";
import { createContext, useState } from "react";
export const DataTableContext = createContext();
const DataTableProvider = ({children}) => {
const DataTableProvider = ({ children }) => {
const [filterData, setFilterData] = useState({});
return (
<DataTableContext.Provider value={{filterData, setFilterData}}>
{children}
</DataTableContext.Provider>
);
return <DataTableContext.Provider value={{ filterData, setFilterData }}>{children}</DataTableContext.Provider>;
};
export default DataTableProvider;
export default DataTableProvider;

View File

@@ -1,12 +1,12 @@
'use client'
import { createContext, useCallback, useContext, useEffect, useReducer } from 'react';
import useRequest from '../hooks/useRequest';
import { GET_USER_ROUTE } from '@/core/utils/routes';
"use client";
import { createContext, useCallback, useContext, useEffect, useReducer } from "react";
import useRequest from "../hooks/useRequest";
import { GET_USER_ROUTE } from "@/core/utils/routes";
const initAuth = {
initAuthState: false,
isAuth: false,
user: {}
user: {},
};
const authReducer = (state, action) => {
@@ -28,7 +28,7 @@ const AuthContext = createContext();
export const AuthProvider = ({ children }) => {
const [state, dispatch] = useReducer(authReducer, initAuth);
const request = useRequest()
const request = useRequest();
const clearUser = useCallback(() => {
dispatch({ type: "CLEAR_USER" });
@@ -48,7 +48,7 @@ export const AuthProvider = ({ children }) => {
const getUser = useCallback(async () => {
try {
const { data } = await request(GET_USER_ROUTE, 'get')
const { data } = await request(GET_USER_ROUTE, "get");
changeUser(data);
changeAuthState(true);
changeInitAuth(true);
@@ -62,15 +62,21 @@ export const AuthProvider = ({ children }) => {
}, [clearUser, changeUser, changeAuthState, changeInitAuth]);
useEffect(() => {
getUser()
}, [])
getUser();
}, []);
return <AuthContext.Provider value={{
user: state.user,
isAuth: state.isAuth,
initAuthState: state.initAuthState,
getUser
}}>{children}</AuthContext.Provider>;
return (
<AuthContext.Provider
value={{
user: state.user,
isAuth: state.isAuth,
initAuthState: state.initAuthState,
getUser,
}}
>
{children}
</AuthContext.Provider>
);
};
export const useAuth = () => useContext(AuthContext);
export const useAuth = () => useContext(AuthContext);

View File

@@ -1,26 +1,26 @@
'use client'
import {createContext, useCallback, useEffect, useState} from "react";
"use client";
import { createContext, useCallback, useEffect, useState } from "react";
export const TableSettingContext = createContext();
export const TableSettingProvider = ({children}) => {
export const TableSettingProvider = ({ children }) => {
const [settingStore, setSettingStore] = useState({});
useEffect(() => {
const _localStorage = localStorage.getItem("_setting-app")
const _localStorage = localStorage.getItem("_setting-app");
if (_localStorage) {
setSettingStore(JSON.parse(_localStorage))
setSettingStore(JSON.parse(_localStorage));
}
}, []);
const hideAction = useCallback((user_id, page_name, table_name, settingValue, columns) => {
updateSettingStorage(user_id, page_name, table_name, "hides", settingValue, columns);
}, [])
}, []);
const sortAction = useCallback((user_id, page_name, table_name, settingValue, columns) => {
updateSettingStorage(user_id, page_name, table_name, "sorts", settingValue, columns);
}, [])
}, []);
const filterAction = (user_id, page_name, table_name, settingValue, columns) => {
updateSettingStorage(user_id, page_name, table_name, "filters", settingValue, columns);
}
};
const updateSettingStorage = (user_id, page_name, table_name, settingType, settingValue, columns) => {
const prevLocalStorage = JSON.parse(localStorage.getItem("_setting-app")) || {};
const userSettings = prevLocalStorage[user_id] || {};
@@ -30,7 +30,7 @@ export const TableSettingProvider = ({children}) => {
if (settingType === "sorts" || settingType === "filters") {
newSettings = [...settingValue];
} else {
newSettings = {...tableSettings[settingType] || {}, ...settingValue};
newSettings = { ...(tableSettings[settingType] || {}), ...settingValue };
}
const updatedLocalStorage = {
...prevLocalStorage,
@@ -40,18 +40,21 @@ export const TableSettingProvider = ({children}) => {
...pageSettings,
[table_name]: {
...tableSettings,
[settingType]: Array.isArray(settingValue) ? [...newSettings] : {...newSettings},
summary: SummaryTextMessage({
...tableSettings,
[settingType]: Array.isArray(settingValue) ? [...newSettings] : {...newSettings},
}, columns)
[settingType]: Array.isArray(settingValue) ? [...newSettings] : { ...newSettings },
summary: SummaryTextMessage(
{
...tableSettings,
[settingType]: Array.isArray(settingValue) ? [...newSettings] : { ...newSettings },
},
columns
),
},
},
},
};
localStorage.setItem("_setting-app", JSON.stringify(updatedLocalStorage));
setSettingStore(updatedLocalStorage);
}
};
const refactorAction = (user_id, page_name, table_name) => {
const prevLocalStorage = JSON.parse(localStorage.getItem("_setting-app")) || {};
const userSettings = prevLocalStorage[user_id] || {};
@@ -68,7 +71,7 @@ export const TableSettingProvider = ({children}) => {
};
localStorage.setItem("_setting-app", JSON.stringify(refactorData));
setSettingStore(refactorData);
}
};
const SummaryTextMessage = (values, columns) => {
let SummaryText = "";
let HideText = "";
@@ -76,38 +79,35 @@ export const TableSettingProvider = ({children}) => {
let SortText = "";
if (values.sorts && values.sorts.length > 0) {
const _list = []
const _list = [];
for (const sort of values.sorts) {
const _column = columns.find(column => column.id == sort.id)
if (_column)
_list.push(`${_column.header}` + `(${sort.desc ? "نزولی" : "صعودی"})`)
const _column = columns.find((column) => column.id == sort.id);
if (_column) _list.push(`${_column.header}` + `(${sort.desc ? "نزولی" : "صعودی"})`);
}
if (_list.length > 0)
SortText = " مرتب شده بر اساس : " + _list.join(", ")
if (_list.length > 0) SortText = " مرتب شده بر اساس : " + _list.join(", ");
}
if (values.filters && values.filters.length > 0) {
const _list = []
const _list = [];
for (const filter of values.filters) {
const _column = columns.find(column => column.id == filter.id)
if (_column)
_list.push(`${_column.header}`)
const _column = columns.find((column) => column.id == filter.id);
if (_column) _list.push(`${_column.header}`);
}
if (_list.length > 0)
FilterText = " فیلتر شده بر اساس : " + _list.join(", ")
if (_list.length > 0) FilterText = " فیلتر شده بر اساس : " + _list.join(", ");
}
if (values.hides) {
const hidesArray = Object.entries(values.hides).map((e) => ({id: e[0], value: e[1]}))
const hidesArray = Object.entries(values.hides).map((e) => ({
id: e[0],
value: e[1],
}));
if (hidesArray.length > 0) {
const _list = []
const _list = [];
for (const hide of hidesArray) {
if (hide.value) continue
const _column = columns.find(c => c.id == hide.id)
if (_column)
_list.push(_column.header)
if (hide.value) continue;
const _column = columns.find((c) => c.id == hide.id);
if (_column) _list.push(_column.header);
}
if (_list.length > 0)
HideText = "ستون های مخفی شده : " + _list.join(", ");
if (_list.length > 0) HideText = "ستون های مخفی شده : " + _list.join(", ");
}
}
@@ -128,7 +128,7 @@ export const TableSettingProvider = ({children}) => {
}
}
if (FilterText) {
SummaryText += FilterText
SummaryText += FilterText;
}
}
@@ -137,8 +137,15 @@ export const TableSettingProvider = ({children}) => {
return (
<TableSettingContext.Provider
value={{settingStore, hideAction, sortAction, filterAction, refactorAction}}>
value={{
settingStore,
hideAction,
sortAction,
filterAction,
refactorAction,
}}
>
{children}
</TableSettingContext.Provider>
);
};
};

View File

@@ -1,9 +1,9 @@
import {useContext} from "react";
import {DataTableContext} from "@/lib/contexts/DataTable";
import { useContext } from "react";
import { DataTableContext } from "@/lib/contexts/DataTable";
const useTableSetting = () => {
const {filterData, setFilterData} = useContext(DataTableContext);
return {filterData, setFilterData};
const { filterData, setFilterData } = useContext(DataTableContext);
return { filterData, setFilterData };
};
export default useTableSetting;

View File

@@ -5,38 +5,42 @@ import axios from "axios";
const defaultOptions = {
data: {},
requestOptions: {
headers: {}
headers: {},
},
notification: {
show: true,
success: false,
failed: true
failed: true,
},
}
};
const useRequest = (initOptions) => {
const _options = Object.assign({}, defaultOptions, initOptions);
return async (url = '', method = 'get', options) => {
return async (url = "", method = "get", options) => {
const mergedOptions = Object.assign({}, _options, options);
try {
const response = await axios({
url,
method,
data: method === 'get' ? null : mergedOptions.data,
data: method === "get" ? null : mergedOptions.data,
withCredentials: true,
...mergedOptions.requestOptions
...mergedOptions.requestOptions,
});
successRequest(mergedOptions.notification.show && mergedOptions.notification.success, 'request_data');
successRequest(mergedOptions.notification.show && mergedOptions.notification.success, "request_data");
return response;
} catch (error) {
if (error.response) {
errorResponse(error.response, mergedOptions.notification.show && mergedOptions.notification.failed, 'request_data');
errorResponse(
error.response,
mergedOptions.notification.show && mergedOptions.notification.failed,
"request_data"
);
}
throw error;
}
}
}
};
};
export default useRequest
export default useRequest;

View File

@@ -1,10 +1,9 @@
import {useContext} from "react";
import {TableSettingContext} from "../contexts/tableSetting";
import { useContext } from "react";
import { TableSettingContext } from "../contexts/tableSetting";
const useTableSetting = () => {
const {settingStore, hideAction, sortAction, filterAction, refactorAction} =
useContext(TableSettingContext);
return {settingStore, hideAction, sortAction, filterAction, refactorAction};
const { settingStore, hideAction, sortAction, filterAction, refactorAction } = useContext(TableSettingContext);
return { settingStore, hideAction, sortAction, filterAction, refactorAction };
};
export default useTableSetting;