1) Handle blank space in menu bar
2) Breadcrum "Home" link to "Dashboard" on pages where it was missing
This commit is contained in:
parent
6860ba3dff
commit
0bd1cea703
@ -99,7 +99,7 @@ const MenuItem = (item) => {
|
||||
className={`menu-link ${hasSubmenu ? "menu-toggle" : ""}`}
|
||||
target={item.link?.includes("http") ? "_blank" : undefined}
|
||||
>
|
||||
<i className={`menu-icon tf-icons ${item.icon}`}></i>
|
||||
{item.icon && <i className={`menu-icon tf-icons ${item.icon}`}></i>}
|
||||
<div>{item.name}</div>
|
||||
{item.available === false && (
|
||||
<div className="badge bg-label-primary fs-tiny rounded-pill ms-auto">
|
||||
|
||||
@ -26,7 +26,7 @@ export const useAdvancePaymentContext = () => {
|
||||
};
|
||||
const AdvancePaymentPage = () => {
|
||||
const [balance, setBalance] = useState(null);
|
||||
const {control, reset, watch } = useForm({
|
||||
const { control, reset, watch } = useForm({
|
||||
defaultValues: {
|
||||
employeeId: "",
|
||||
},
|
||||
@ -40,13 +40,12 @@ const AdvancePaymentPage = () => {
|
||||
});
|
||||
}, [reset]);
|
||||
|
||||
|
||||
return (
|
||||
<AdvancePaymentContext.Provider value={{ setBalance }}>
|
||||
<div className="container-fluid">
|
||||
<Breadcrumb
|
||||
data={[
|
||||
{ label: "Home", link: "/" },
|
||||
{ label: "Home", link: "/dashboard" },
|
||||
{ label: "Finance", link: "/advance-payment" },
|
||||
{ label: "Advance Payment" },
|
||||
]}
|
||||
@ -73,7 +72,12 @@ const AdvancePaymentPage = () => {
|
||||
balance > 0 ? "text-success" : "text-danger"
|
||||
} fs-5 fw-bold ms-1`}
|
||||
>
|
||||
{ balance > 0 ? <i className="bx bx-plus b-sm"></i> : <i className="bx bx-minus b-sm"></i>} {formatFigure(balance, {
|
||||
{balance > 0 ? (
|
||||
<i className="bx bx-plus b-sm"></i>
|
||||
) : (
|
||||
<i className="bx bx-minus b-sm"></i>
|
||||
)}{" "}
|
||||
{formatFigure(balance, {
|
||||
type: "currency",
|
||||
currency: "INR",
|
||||
})}
|
||||
@ -85,8 +89,6 @@ const AdvancePaymentPage = () => {
|
||||
</div>
|
||||
</div>
|
||||
<AdvancePaymentList employeeId={selectedEmployeeId} />
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</AdvancePaymentContext.Provider>
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
import React, { createContext, useContext, useState, useEffect, useRef } from "react";
|
||||
import React, {
|
||||
createContext,
|
||||
useContext,
|
||||
useState,
|
||||
useEffect,
|
||||
useRef,
|
||||
} from "react";
|
||||
import { useForm, useFormContext } from "react-hook-form";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
import { useSelector } from "react-redux";
|
||||
@ -19,7 +25,10 @@ import {
|
||||
VIEW_SELF_EXPENSE,
|
||||
} from "../../utils/constants";
|
||||
|
||||
import { defaultFilter, SearchSchema } from "../../components/Expenses/ExpenseSchema";
|
||||
import {
|
||||
defaultFilter,
|
||||
SearchSchema,
|
||||
} from "../../components/Expenses/ExpenseSchema";
|
||||
import PreviewDocument from "../../components/Expenses/PreviewDocument";
|
||||
|
||||
// Context
|
||||
@ -102,14 +111,14 @@ const ExpensePage = () => {
|
||||
setManageExpenseModal,
|
||||
setDocumentView,
|
||||
filterData,
|
||||
removeFilterChip
|
||||
removeFilterChip,
|
||||
};
|
||||
|
||||
return (
|
||||
<ExpenseContext.Provider value={contextValue}>
|
||||
<div className="container-fluid">
|
||||
<Breadcrumb
|
||||
data={[{ label: "Home", link: "/" }, { label: "Expense" }]}
|
||||
data={[{ label: "Home", link: "/dashboard" }, { label: "Expense" }]}
|
||||
/>
|
||||
|
||||
{IsViewAll || IsViewSelf || IsCreatedAble ? (
|
||||
@ -128,7 +137,6 @@ const ExpensePage = () => {
|
||||
</div>
|
||||
|
||||
<div className="col-6 text-end mt-2 mt-sm-0">
|
||||
|
||||
{IsCreatedAble && (
|
||||
<button
|
||||
className="btn btn-sm btn-primary"
|
||||
@ -151,8 +159,6 @@ const ExpensePage = () => {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<ExpenseList
|
||||
filters={filters}
|
||||
groupBy={groupBy}
|
||||
|
||||
@ -36,11 +36,10 @@ export const useGalleryContext = () => {
|
||||
};
|
||||
|
||||
const ImageGalleryPage = () => {
|
||||
const [filter,setFilter] = useState()
|
||||
const [filter, setFilter] = useState();
|
||||
const selectedProjectId = useSelectedProject();
|
||||
const { projectNames } = useProjectName();
|
||||
|
||||
|
||||
const [openGallery, setOpenGallery] = useState({ isOpen: false, data: null });
|
||||
|
||||
const { data: assignedServices = [], isLoading } =
|
||||
@ -58,22 +57,24 @@ const ImageGalleryPage = () => {
|
||||
|
||||
const { setOffcanvasContent, setShowTrigger } = useFab();
|
||||
|
||||
useEffect(()=>{
|
||||
useEffect(() => {
|
||||
setShowTrigger(true);
|
||||
setOffcanvasContent("Gallery Filter",<GalleryFilterPanel onApply={setFilter}/>);
|
||||
setOffcanvasContent(
|
||||
"Gallery Filter",
|
||||
<GalleryFilterPanel onApply={setFilter} />
|
||||
);
|
||||
|
||||
return ()=>{
|
||||
setOffcanvasContent("",null)
|
||||
return () => {
|
||||
setOffcanvasContent("", null);
|
||||
setShowTrigger(false);
|
||||
}
|
||||
},[])
|
||||
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<GalleryContext.Provider value={contextMessager}>
|
||||
<div className="container-fluid">
|
||||
<Breadcrumb
|
||||
data={[{ label: "Home", link: "/" }, { label: "Gallery" }]}
|
||||
data={[{ label: "Home", link: "/dashboard" }, { label: "Gallery" }]}
|
||||
/>
|
||||
|
||||
<div className="card page-min-h p-2">
|
||||
@ -104,7 +105,7 @@ const ImageGalleryPage = () => {
|
||||
</div>
|
||||
)} */}
|
||||
|
||||
<ImageGalleryListView filter={filter}/>
|
||||
<ImageGalleryListView filter={filter} />
|
||||
</div>
|
||||
|
||||
{openGallery?.isOpen && (
|
||||
|
||||
@ -6,12 +6,15 @@ import OrganizationsList from "../../components/Organization/OrganizationsList";
|
||||
const OrganizationPage = () => {
|
||||
const { isOpen, orgData, startStep, onOpen, flowType } =
|
||||
useOrganizationModal();
|
||||
const [searchText, setSearchText] = useState("")
|
||||
const [searchText, setSearchText] = useState("");
|
||||
|
||||
return (
|
||||
<div className="container-fluid">
|
||||
<Breadcrumb
|
||||
data={[{ label: "Home", link: "/" }, { label: "Organizations" }]}
|
||||
data={[
|
||||
{ label: "Home", link: "/dashboard" },
|
||||
{ label: "Organizations" },
|
||||
]}
|
||||
/>
|
||||
<div className="card my-3 px-sm-4 px-0">
|
||||
<div className="card-body py-2 px-3">
|
||||
@ -42,14 +45,11 @@ const OrganizationPage = () => {
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="card page-min-h px-sm-4">
|
||||
<OrganizationsList searchText={searchText} />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@ -6,7 +6,10 @@ import ExpenseFilterPanel from "../../components/Expenses/ExpenseFilterPanel";
|
||||
import { useFab } from "../../Context/FabContext";
|
||||
import PaymentRequestList from "../../components/PaymentRequest/PaymentRequestList";
|
||||
import PaymentRequestFilterPanel from "../../components/PaymentRequest/PaymentRequestFilterPanel";
|
||||
import { defaultPaymentRequestFilter,SearchPaymentRequestSchema } from "../../components/PaymentRequest/PaymentRequestSchema";
|
||||
import {
|
||||
defaultPaymentRequestFilter,
|
||||
SearchPaymentRequestSchema,
|
||||
} from "../../components/PaymentRequest/PaymentRequestSchema";
|
||||
import ViewPaymentRequest from "../../components/PaymentRequest/ViewPaymentRequest";
|
||||
import PreviewDocument from "../../components/Expenses/PreviewDocument";
|
||||
import MakeExpense from "../../components/PaymentRequest/MakeExpense";
|
||||
@ -15,7 +18,9 @@ export const PaymentRequestContext = createContext();
|
||||
export const usePaymentRequestContext = () => {
|
||||
const context = useContext(PaymentRequestContext);
|
||||
if (!context) {
|
||||
throw new Error("usePaymentRequestContext must be used within an ExpenseProvider");
|
||||
throw new Error(
|
||||
"usePaymentRequestContext must be used within an ExpenseProvider"
|
||||
);
|
||||
}
|
||||
return context;
|
||||
};
|
||||
@ -24,16 +29,21 @@ const PaymentRequestPage = () => {
|
||||
IsOpen: null,
|
||||
RequestId: null,
|
||||
});
|
||||
const [ViewRequest,setVieRequest] = useState({view:false,requestId:null})
|
||||
const [ViewRequest, setVieRequest] = useState({
|
||||
view: false,
|
||||
requestId: null,
|
||||
});
|
||||
const { setOffcanvasContent, setShowTrigger } = useFab();
|
||||
const [filters, setFilters] = useState(defaultPaymentRequestFilter);
|
||||
const [ViewDocument, setDocumentView] = useState({
|
||||
IsOpen: false,
|
||||
Image: null,
|
||||
});
|
||||
const [isExpenseGenerate,setIsExpenseGenerate] = useState({IsOpen: null,
|
||||
RequestId: null,})
|
||||
const [modalSize,setModalSize] = useState("md")
|
||||
const [isExpenseGenerate, setIsExpenseGenerate] = useState({
|
||||
IsOpen: null,
|
||||
RequestId: null,
|
||||
});
|
||||
const [modalSize, setModalSize] = useState("md");
|
||||
const [search, setSearch] = useState("");
|
||||
|
||||
const contextValue = {
|
||||
@ -42,11 +52,10 @@ const PaymentRequestPage = () => {
|
||||
setDocumentView,
|
||||
setModalSize,
|
||||
setIsExpenseGenerate,
|
||||
isExpenseGenerate
|
||||
isExpenseGenerate,
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
setShowTrigger(true);
|
||||
setOffcanvasContent(
|
||||
"Payment Request Filters",
|
||||
@ -65,7 +74,7 @@ const PaymentRequestPage = () => {
|
||||
{/* Breadcrumb */}
|
||||
<Breadcrumb
|
||||
data={[
|
||||
{ label: "Home", link: "/" },
|
||||
{ label: "Home", link: "/dashboard" },
|
||||
{ label: "Finance", link: "/Payment Request" },
|
||||
{ label: "Payment Request" },
|
||||
]}
|
||||
@ -81,7 +90,7 @@ const PaymentRequestPage = () => {
|
||||
className="form-control form-control-sm w-auto"
|
||||
placeholder="Search Payment Request"
|
||||
value={search}
|
||||
style={{minWidth:"200px"}}
|
||||
style={{ minWidth: "200px" }}
|
||||
onChange={(e) => setSearch(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
@ -106,10 +115,7 @@ const PaymentRequestPage = () => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<PaymentRequestList
|
||||
search={search}
|
||||
filters={filters}
|
||||
/>
|
||||
<PaymentRequestList search={search} filters={filters} />
|
||||
|
||||
{/* Add/Edit Modal */}
|
||||
{ManageRequest.IsOpen && (
|
||||
@ -144,10 +150,16 @@ const PaymentRequestPage = () => {
|
||||
<GlobalModel
|
||||
isOpen
|
||||
size="md"
|
||||
closeModal={() => setIsExpenseGenerate({IsOpen:false, requestId: null})}
|
||||
closeModal={() =>
|
||||
setIsExpenseGenerate({ IsOpen: false, requestId: null })
|
||||
}
|
||||
>
|
||||
<MakeExpe
|
||||
nse onClose={() => setIsExpenseGenerate({IsOpen:false, requestId: null})} />
|
||||
nse
|
||||
onClose={() =>
|
||||
setIsExpenseGenerate({ IsOpen: false, requestId: null })
|
||||
}
|
||||
/>
|
||||
</GlobalModel>
|
||||
)}
|
||||
|
||||
@ -161,7 +173,6 @@ const PaymentRequestPage = () => {
|
||||
<PreviewDocument imageUrl={ViewDocument.Image} />
|
||||
</GlobalModel>
|
||||
)}
|
||||
|
||||
</div>
|
||||
</PaymentRequestContext.Provider>
|
||||
);
|
||||
|
||||
@ -101,7 +101,7 @@ const CollectionPage = () => {
|
||||
) {
|
||||
return (
|
||||
<AccessDenied
|
||||
data={[{ label: "Home", link: "/" }, { label: "Collection" }]}
|
||||
data={[{ label: "Home", link: "/dashboard" }, { label: "Collection" }]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -109,7 +109,10 @@ const CollectionPage = () => {
|
||||
<CollectionContext.Provider value={contextMassager}>
|
||||
<div className="container-fluid">
|
||||
<Breadcrumb
|
||||
data={[{ label: "Home", link: "/" }, { label: "Collection" }]}
|
||||
data={[
|
||||
{ label: "Home", link: "/dashboard" },
|
||||
{ label: "Collection" },
|
||||
]}
|
||||
/>
|
||||
|
||||
<div className="card my-3 py-2 px-sm-4 px-2">
|
||||
@ -152,16 +155,18 @@ const CollectionPage = () => {
|
||||
<button
|
||||
className="btn btn-sm btn-primary"
|
||||
type="button"
|
||||
onClick={() => setCollection({ isOpen: true, invoiceId: null })}
|
||||
onClick={() =>
|
||||
setCollection({ isOpen: true, invoiceId: null })
|
||||
}
|
||||
>
|
||||
<i className="bx bx-plus-circle me-2"></i>
|
||||
<span className="d-none d-md-inline-block">Add New Collection</span>
|
||||
<span className="d-none d-md-inline-block">
|
||||
Add New Collection
|
||||
</span>
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<CollectionList
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user