From 8d66437e7b8663bd791bbf4a7ad5714edd857372 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 10 Jun 2026 12:35:49 +0330 Subject: [PATCH] base design workspace --- src/config/Pages.ts | 2 +- src/index.css | 2 + src/pages/taskmanager/HeaderWorkspace.tsx | 23 ++ src/pages/taskmanager/workspace.tsx | 12 + src/router/Main.tsx | 422 +++++++++++----------- src/shared/Header.tsx | 7 +- src/shared/SideBar.tsx | 2 +- 7 files changed, 259 insertions(+), 211 deletions(-) create mode 100644 src/pages/taskmanager/HeaderWorkspace.tsx create mode 100644 src/pages/taskmanager/workspace.tsx diff --git a/src/config/Pages.ts b/src/config/Pages.ts index 35b5455..f1cf980 100644 --- a/src/config/Pages.ts +++ b/src/config/Pages.ts @@ -167,6 +167,6 @@ export const Pages = { withdraw: "/reseller/withdraw", }, taskmanager: { - list: "/taskmanager/list", + workspace: "/taskmanager/workspace/", }, }; diff --git a/src/index.css b/src/index.css index e8e2cd1..a3bba33 100644 --- a/src/index.css +++ b/src/index.css @@ -4,6 +4,7 @@ html { direction: rtl; + min-height: 100%; } body { @@ -16,6 +17,7 @@ body { background: #eceef6; font-weight: 300; overflow: hidden; + min-height: 100%; } html, body, diff --git a/src/pages/taskmanager/HeaderWorkspace.tsx b/src/pages/taskmanager/HeaderWorkspace.tsx new file mode 100644 index 0000000..1a880ba --- /dev/null +++ b/src/pages/taskmanager/HeaderWorkspace.tsx @@ -0,0 +1,23 @@ +import { InfoCircle, Setting2, UserAdd } from "iconsax-react"; + +const HeaderWorkspace = () => { + return ( +
+
+
طراحی Dpage
+ +
+ +
+
+ +
اشتراک گذاری
+
+ + +
+
+ ); +}; + +export default HeaderWorkspace; diff --git a/src/pages/taskmanager/workspace.tsx b/src/pages/taskmanager/workspace.tsx new file mode 100644 index 0000000..221866b --- /dev/null +++ b/src/pages/taskmanager/workspace.tsx @@ -0,0 +1,12 @@ +import { type FC } from "react"; +import HeaderWorkspace from "./HeaderWorkspace"; + +const Workspace: FC = () => { + return ( +
+ +
+ ); +}; + +export default Workspace; diff --git a/src/router/Main.tsx b/src/router/Main.tsx index ae52170..8ec6758 100644 --- a/src/router/Main.tsx +++ b/src/router/Main.tsx @@ -1,220 +1,226 @@ -import { FC } from 'react' -import SideBar from '../shared/SideBar' -import Header from '../shared/Header' -import { Route, Routes } from 'react-router-dom' -import { Pages } from '../config/Pages' -import Home from '../pages/home/Home' -import MyServices from '../pages/service/MyServices' -import DiscountsList from '../pages/discounts/DiscountsList' -import CreateDiscount from '../pages/discounts/CreateDiscount' -import AdsList from '../pages/ads/AdsList' -import BlogList from '../pages/blog/BlogList' -import CreateBlog from '../pages/blog/CreateBlog' -import BlogCategory from '../pages/blog/BlogCategory' -import CreateAds from '../pages/ads/CreateAds' -import TicketList from '../pages/ticket/TicketList' -import CreateTicket from '../pages/ticket/CreateTicket' -import TicketDetail from '../pages/ticket/Detail' -import TransactionList from '../pages/transaction/List' -import ReceiptsList from '../pages/receipts/List' -import AnnouncementtList from '../pages/annoncement/List' -import LearningList from '../pages/learning/List' -import Setting from '../pages/setting/Setting' -import Wallet from '../pages/wallet/Wallet' -import ReceiptsDetail from '../pages/receipts/Detail' -import Profile from '../pages/profile/Profile' -import OtherServices from '../pages/service/OtherServices' -import Footer from '../shared/Footer' -import DetailService from '../pages/service/DetailService' -import { clx } from '../helpers/utils' -import { useSharedStore } from '../shared/store/sharedStore' -import CreateReceipt from '../pages/receipts/Create' -import AddService from '../pages/service/AddService' -import ListService from '../pages/service/List' -import Category from '../pages/service/Category' -import CustomerList from '../pages/customer/List' -import CreateCustomer from '../pages/customer/Create' -import TicketCategory from '../pages/ticket/Category' -import MessagesList from '../pages/messages/List' -import CriticismsList from '../pages/criticisms/List' -import CriticismsDetail from '../pages/criticisms/Detail' -import Create from '../pages/annoncement/Create' -import UsersList from '../pages/users/List' -import CreateUser from '../pages/users/Create' -import RolesList from '../pages/users/RolesList' -import RoleCreate from '../pages/users/RoleCreate' -import MessageDetail from '../pages/messages/Detail' -import CreateBankCard from '../pages/cardBank/Create' -import CardBankList from '../pages/cardBank/List' -import EditBankCard from '../pages/cardBank/Edit' -import PaymentList from '../pages/payment/List' -import LearningCategory from '../pages/learning/Category' -import CreateLearning from '../pages/learning/Create' -import Plans from '../pages/service/Plans' -import GroupCreate from '../pages/users/GroupCreate' -import GroupList from '../pages/users/GroupList' -import Reviews from '../pages/service/Reviews' -import UpdateAds from '../pages/ads/Update' -import UpdateService from '../pages/service/UpdateService' -import UpdateCustomer from '../pages/customer/Update' -import UpdateBlog from '../pages/blog/Update' -import Update from '../pages/annoncement/Update' -import UpdateDiscount from '../pages/discounts/UpdateDiscount' -import UpdateUser from '../pages/users/Update' -import CreateSlider from '../pages/slider/Create' -import SliderList from '../pages/slider/List' -import UpdateSlider from '../pages/slider/Update' -import Comments from '../pages/blog/Comments' -import CreatePlan from '../pages/support/Create' -import SupportList from '../pages/support/List' -import UpdateSupport from '../pages/support/Update' -import PlanUsers from '../pages/support/PlanUsers' -import List from '../pages/guide/List' -import CreateGuide from '../pages/guide/Create' -import UpdateGuide from '../pages/guide/Update.tsx' -import ListFeedback from '../pages/feedback/List' -import AccessLogsList from '../pages/accessLogs/AccessLogsList' -import AccessLogsStats from '../pages/accessLogs/AccessLogsStats' -import ErrorLogs from '../pages/accessLogs/ErrorLogs' -import PermissionLogs from '../pages/accessLogs/PermissionLogs' -import IconsList from '../pages/dmenu/icon/List' -import GroupIconList from '../pages/dmenu/icon/GroupList' -import WarningsList from '../pages/dmenu/report/List.tsx' -import RestaurantsList from '../pages/dmenu/restaurant/List.tsx' -import SmsCountList from '../pages/dmenu/restaurant/SmsCountList.tsx' -import UpdateRestaurant from '../pages/dmenu/restaurant/Update.tsx' -import DkalaIconsList from '../pages/dkala/icon/List' -import DkalaGroupIconList from '../pages/dkala/icon/GroupList' -import DkalaWarningsList from '../pages/dkala/report/List.tsx' -import ShopsList from '../pages/dkala/shop/List.tsx' -import DkalaSmsCountList from '../pages/dkala/shop/SmsCountList.tsx' -import UpdateShop from '../pages/dkala/shop/Update.tsx' -import DpageStickersList from '../pages/dpage/sticker/List' -import SubscriptionsList from '../pages/subscriptions/List.tsx' -import Domains from '../pages/dmail/Domains.tsx' -import ResellerList from '../pages/reseller/List.tsx' -import CreateReseller from '../pages/reseller/Create.tsx' -import Withdraw from '../pages/reseller/Withdraw.tsx' +import { FC } from "react"; +import { Route, Routes, useLocation } from "react-router-dom"; +import { Pages } from "../config/Pages"; +import { clx } from "../helpers/utils"; +import AccessLogsList from "../pages/accessLogs/AccessLogsList"; +import AccessLogsStats from "../pages/accessLogs/AccessLogsStats"; +import ErrorLogs from "../pages/accessLogs/ErrorLogs"; +import PermissionLogs from "../pages/accessLogs/PermissionLogs"; +import AdsList from "../pages/ads/AdsList"; +import CreateAds from "../pages/ads/CreateAds"; +import UpdateAds from "../pages/ads/Update"; +import Create from "../pages/annoncement/Create"; +import AnnouncementtList from "../pages/annoncement/List"; +import Update from "../pages/annoncement/Update"; +import BlogCategory from "../pages/blog/BlogCategory"; +import BlogList from "../pages/blog/BlogList"; +import Comments from "../pages/blog/Comments"; +import CreateBlog from "../pages/blog/CreateBlog"; +import UpdateBlog from "../pages/blog/Update"; +import CreateBankCard from "../pages/cardBank/Create"; +import EditBankCard from "../pages/cardBank/Edit"; +import CardBankList from "../pages/cardBank/List"; +import CriticismsDetail from "../pages/criticisms/Detail"; +import CriticismsList from "../pages/criticisms/List"; +import CreateCustomer from "../pages/customer/Create"; +import CustomerList from "../pages/customer/List"; +import UpdateCustomer from "../pages/customer/Update"; +import CreateDiscount from "../pages/discounts/CreateDiscount"; +import DiscountsList from "../pages/discounts/DiscountsList"; +import UpdateDiscount from "../pages/discounts/UpdateDiscount"; +import DkalaGroupIconList from "../pages/dkala/icon/GroupList"; +import DkalaIconsList from "../pages/dkala/icon/List"; +import DkalaWarningsList from "../pages/dkala/report/List.tsx"; +import ShopsList from "../pages/dkala/shop/List.tsx"; +import DkalaSmsCountList from "../pages/dkala/shop/SmsCountList.tsx"; +import UpdateShop from "../pages/dkala/shop/Update.tsx"; +import Domains from "../pages/dmail/Domains.tsx"; +import GroupIconList from "../pages/dmenu/icon/GroupList"; +import IconsList from "../pages/dmenu/icon/List"; +import WarningsList from "../pages/dmenu/report/List.tsx"; +import RestaurantsList from "../pages/dmenu/restaurant/List.tsx"; +import SmsCountList from "../pages/dmenu/restaurant/SmsCountList.tsx"; +import UpdateRestaurant from "../pages/dmenu/restaurant/Update.tsx"; +import DpageStickersList from "../pages/dpage/sticker/List"; +import ListFeedback from "../pages/feedback/List"; +import CreateGuide from "../pages/guide/Create"; +import List from "../pages/guide/List"; +import UpdateGuide from "../pages/guide/Update.tsx"; +import Home from "../pages/home/Home"; +import LearningCategory from "../pages/learning/Category"; +import CreateLearning from "../pages/learning/Create"; +import LearningList from "../pages/learning/List"; +import MessageDetail from "../pages/messages/Detail"; +import MessagesList from "../pages/messages/List"; +import PaymentList from "../pages/payment/List"; +import Profile from "../pages/profile/Profile"; +import CreateReceipt from "../pages/receipts/Create"; +import ReceiptsDetail from "../pages/receipts/Detail"; +import ReceiptsList from "../pages/receipts/List"; +import CreateReseller from "../pages/reseller/Create.tsx"; +import ResellerList from "../pages/reseller/List.tsx"; +import Withdraw from "../pages/reseller/Withdraw.tsx"; +import AddService from "../pages/service/AddService"; +import Category from "../pages/service/Category"; +import DetailService from "../pages/service/DetailService"; +import ListService from "../pages/service/List"; +import MyServices from "../pages/service/MyServices"; +import OtherServices from "../pages/service/OtherServices"; +import Plans from "../pages/service/Plans"; +import Reviews from "../pages/service/Reviews"; +import UpdateService from "../pages/service/UpdateService"; +import Setting from "../pages/setting/Setting"; +import CreateSlider from "../pages/slider/Create"; +import SliderList from "../pages/slider/List"; +import UpdateSlider from "../pages/slider/Update"; +import SubscriptionsList from "../pages/subscriptions/List.tsx"; +import CreatePlan from "../pages/support/Create"; +import SupportList from "../pages/support/List"; +import PlanUsers from "../pages/support/PlanUsers"; +import UpdateSupport from "../pages/support/Update"; +import Workspace from "../pages/taskmanager/workspace.tsx"; +import TicketCategory from "../pages/ticket/Category"; +import CreateTicket from "../pages/ticket/CreateTicket"; +import TicketDetail from "../pages/ticket/Detail"; +import TicketList from "../pages/ticket/TicketList"; +import TransactionList from "../pages/transaction/List"; +import CreateUser from "../pages/users/Create"; +import GroupCreate from "../pages/users/GroupCreate"; +import GroupList from "../pages/users/GroupList"; +import UsersList from "../pages/users/List"; +import RoleCreate from "../pages/users/RoleCreate"; +import RolesList from "../pages/users/RolesList"; +import UpdateUser from "../pages/users/Update"; +import Wallet from "../pages/wallet/Wallet"; +import Footer from "../shared/Footer"; +import Header from "../shared/Header"; +import SideBar from "../shared/SideBar"; +import { useSharedStore } from "../shared/store/sharedStore"; // import WarningsList from '../pages/dmenu/reports/List' // TODO: Create this component const MainRouter: FC = () => { + const { hasSubMenu } = useSharedStore(); + const { pathname } = useLocation(); + const isWorkspace = pathname.startsWith(Pages.taskmanager.workspace); - const { hasSubMenu } = useSharedStore() + return ( +
+ {!isWorkspace && } +
+
+
+
+ + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> - return ( -
- -
-
-
-
- - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> + } /> + } /> - } /> - } /> - } /> - -
-
-
-
+ } /> + +
+
- ) -} +
+
+
+ ); +}; -export default MainRouter \ No newline at end of file +export default MainRouter; diff --git a/src/shared/Header.tsx b/src/shared/Header.tsx index e60eb07..3d95d80 100644 --- a/src/shared/Header.tsx +++ b/src/shared/Header.tsx @@ -5,6 +5,7 @@ import AvatarImage from '../assets/images/avatar_image.png' import { useTranslation } from 'react-i18next' import { Link, useLocation } from 'react-router-dom' import { Pages } from '../config/Pages' +import { clx } from '../helpers/utils' import Notifications from '../pages/notification/Notification' import { useSharedStore } from './store/sharedStore' import { useGetProfile } from '../pages/profile/hooks/useProfileData' @@ -14,6 +15,7 @@ import { removeRefreshToken, removeToken } from '../config/func' const Header: FC = () => { const location = useLocation(); + const isWorkspace = location.pathname.startsWith(Pages.taskmanager.workspace); const [popoverKey, setPopoverKey] = useState(0); const { t } = useTranslation('global') const { setOpenSidebar, openSidebar } = useSharedStore() @@ -30,7 +32,10 @@ const Header: FC = () => { } return ( -
+
{ icon={} title={t("sidebar.taskmanager")} isActive={isActive("taskmanager")} - link={Pages.taskmanager.list} + link={Pages.taskmanager.workspace + "dpage"} activeName="" />