feat: eliminar componente Filterable y ajustar la funcionalidad de filtrado en los componentes de ubicación
This commit is contained in:
+1
-3
@@ -31,7 +31,6 @@ import filterObjects from "@components/TextObjectFilter/Filter.Service";
|
|||||||
|
|
||||||
import dayjs, { ManipulateType } from "dayjs";
|
import dayjs, { ManipulateType } from "dayjs";
|
||||||
import "dayjs/locale/es";
|
import "dayjs/locale/es";
|
||||||
import Filterable from "@core/app/components/Filterable/Filterable";
|
|
||||||
import { useFilterStore } from "@core/Store/Filter.Store";
|
import { useFilterStore } from "@core/Store/Filter.Store";
|
||||||
import { TextObjectFilterResult } from "@core/Models/TextObjectFilter.model";
|
import { TextObjectFilterResult } from "@core/Models/TextObjectFilter.model";
|
||||||
import { FindEmployeesParams } from "@core/Models/Collaborators.model";
|
import { FindEmployeesParams } from "@core/Models/Collaborators.model";
|
||||||
@@ -496,8 +495,7 @@ export default function OrganizationProfile() {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Addable onClick={handleAdd}>
|
<Addable onClick={handleAdd}>
|
||||||
<Filterable />
|
<Location showFilter />
|
||||||
<Location />
|
|
||||||
<div className={style.appointmentsTitle}>
|
<div className={style.appointmentsTitle}>
|
||||||
<h4>{dayjs(currentDate).format("dddd DD [de] MMMM, YYYY")}</h4>
|
<h4>{dayjs(currentDate).format("dddd DD [de] MMMM, YYYY")}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+1
-3
@@ -21,7 +21,6 @@ import {
|
|||||||
} from "@core/Models/CashFlow.model";
|
} from "@core/Models/CashFlow.model";
|
||||||
import { cashFlowPaginate, createInvoiceFromCashMovement, findInvoices, findOrganizationFiscalProfiles, Invoice, OrganizationFiscalProfile } from "../Cash.Service";
|
import { cashFlowPaginate, createInvoiceFromCashMovement, findInvoices, findOrganizationFiscalProfiles, Invoice, OrganizationFiscalProfile } from "../Cash.Service";
|
||||||
import SecureByPlan, { SECURE_CONTENTS } from "@core/app/components/SecureByPlan/SecureByPlan";
|
import SecureByPlan, { SECURE_CONTENTS } from "@core/app/components/SecureByPlan/SecureByPlan";
|
||||||
import Filterable from "@core/app/components/Filterable/Filterable";
|
|
||||||
import { TextObjectFilterResult } from "@core/Models/TextObjectFilter.model";
|
import { TextObjectFilterResult } from "@core/Models/TextObjectFilter.model";
|
||||||
import { TextObjectModalContent } from "@core/Store/TextObjectModal.Store";
|
import { TextObjectModalContent } from "@core/Store/TextObjectModal.Store";
|
||||||
import TextObjectFilterItem from "@core/app/components/TextObjectFilterItem/TextObjectFilterItem";
|
import TextObjectFilterItem from "@core/app/components/TextObjectFilterItem/TextObjectFilterItem";
|
||||||
@@ -862,8 +861,7 @@ export default function CashFlowMovementsList() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Location />
|
<Location showFilter />
|
||||||
<Filterable />
|
|
||||||
|
|
||||||
<SecureByPlan content={SECURE_CONTENTS.PAYMENTS} companyId={id}>
|
<SecureByPlan content={SECURE_CONTENTS.PAYMENTS} companyId={id}>
|
||||||
<>
|
<>
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 60px; /* Below Location/Filterable */
|
top: 60px; /* Below Location */
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 10px;
|
bottom: 10px;
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import {
|
|||||||
} from "@core/Models/Clients.model";
|
} from "@core/Models/Clients.model";
|
||||||
import { useNavigation } from "@hooks/goto";
|
import { useNavigation } from "@hooks/goto";
|
||||||
import { FilterData, useFilterStore } from "@core/Store/Filter.Store";
|
import { FilterData, useFilterStore } from "@core/Store/Filter.Store";
|
||||||
import Filterable from "@core/app/components/Filterable/Filterable";
|
|
||||||
import Textbox from "@core/app/components/Textbox/Textbox";
|
import Textbox from "@core/app/components/Textbox/Textbox";
|
||||||
|
|
||||||
type UrlData = {
|
type UrlData = {
|
||||||
@@ -179,8 +178,7 @@ export default function ClientsGrid() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Filterable />
|
<Location showFilter />
|
||||||
<Location />
|
|
||||||
<div className={pageStyle.pageContainer}>
|
<div className={pageStyle.pageContainer}>
|
||||||
{clients?.data && clients.data.length > 0 ? (
|
{clients?.data && clients.data.length > 0 ? (
|
||||||
<div className={pageStyle.clientsGrid}>
|
<div className={pageStyle.clientsGrid}>
|
||||||
|
|||||||
+1
-3
@@ -29,7 +29,6 @@ import DeleteIcon from "@mui/icons-material/DeleteOutlined";
|
|||||||
import { useConfirmStore } from "@core/Store/Confirm.Store";
|
import { useConfirmStore } from "@core/Store/Confirm.Store";
|
||||||
import { useAlert } from "@core/Store/Alert.Store";
|
import { useAlert } from "@core/Store/Alert.Store";
|
||||||
import Textbox from "@components/Textbox/Textbox";
|
import Textbox from "@components/Textbox/Textbox";
|
||||||
import Filterable from "@core/app/components/Filterable/Filterable";
|
|
||||||
import { TextObjectFilterResult } from "@core/Models/TextObjectFilter.model";
|
import { TextObjectFilterResult } from "@core/Models/TextObjectFilter.model";
|
||||||
import { TextObjectModalContent } from "@core/Store/TextObjectModal.Store";
|
import { TextObjectModalContent } from "@core/Store/TextObjectModal.Store";
|
||||||
import TextObjectFilterItem from "@core/app/components/TextObjectFilterItem/TextObjectFilterItem";
|
import TextObjectFilterItem from "@core/app/components/TextObjectFilterItem/TextObjectFilterItem";
|
||||||
@@ -334,8 +333,7 @@ export default function DiscountsEmailGrid() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Location />
|
<Location showFilter />
|
||||||
<Filterable />
|
|
||||||
|
|
||||||
<div style={{ display: "flex", justifyContent: "center", marginTop: "15px" }}>
|
<div style={{ display: "flex", justifyContent: "center", marginTop: "15px" }}>
|
||||||
<ThemeProvider theme={turnosXpressTheme}>
|
<ThemeProvider theme={turnosXpressTheme}>
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
.buttonFilter {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 200;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
top: 5px;
|
|
||||||
right: -10px;
|
|
||||||
background-color: transparent;
|
|
||||||
color: var(--gray-dark);
|
|
||||||
border-radius: 50%;
|
|
||||||
cursor: pointer;
|
|
||||||
transition:
|
|
||||||
width 0.25s ease-in-out,
|
|
||||||
height 0.25s ease-in-out;
|
|
||||||
|
|
||||||
width: 52px;
|
|
||||||
height: 52px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttonFilter > svg {
|
|
||||||
display: flex;
|
|
||||||
opacity: 1;
|
|
||||||
background: transparent;
|
|
||||||
animation: buttonFilterPulseShadow 1.5s ease-in-out infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes buttonFilterPulseShadow {
|
|
||||||
0%,
|
|
||||||
100% {
|
|
||||||
filter: drop-shadow(0px 2px 1px var(--gray-light));
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
filter: drop-shadow(0px 2px 4px var(--gray-dark));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
"use client";
|
|
||||||
import { ReactNode } from "react";
|
|
||||||
import style from "./Filterable.module.css";
|
|
||||||
import FilterAltOutlinedIcon from "@mui/icons-material/FilterAltOutlined";
|
|
||||||
import { useFilterStore } from "@core/Store/Filter.Store";
|
|
||||||
|
|
||||||
interface FilterableProps {
|
|
||||||
children?: ReactNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function Filterable(props: FilterableProps): React.ReactElement {
|
|
||||||
const filter = useFilterStore();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{props.children}
|
|
||||||
<div
|
|
||||||
className={style.buttonFilter}
|
|
||||||
onClick={() => {
|
|
||||||
filter.toggle();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<FilterAltOutlinedIcon sx={{ fontSize: "32px" }} />
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -24,6 +24,32 @@
|
|||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.locationTitleFilter {
|
||||||
|
padding-right: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filterButton {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
right: 12px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: transparent;
|
||||||
|
color: var(--gray-dark);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filterButton:hover {
|
||||||
|
color: var(--black);
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
.locationContainer {
|
.locationContainer {
|
||||||
left: 6px;
|
left: 6px;
|
||||||
|
|||||||
@@ -2,18 +2,22 @@
|
|||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import style from "./Location.module.css";
|
import style from "./Location.module.css";
|
||||||
import { useLocationStore } from "@store/Location.Store";
|
import { useLocationStore } from "@store/Location.Store";
|
||||||
|
import { useFilterStore } from "@store/Filter.Store";
|
||||||
import Breadcrumbs from "@mui/material/Breadcrumbs";
|
import Breadcrumbs from "@mui/material/Breadcrumbs";
|
||||||
import Link from "@mui/material/Link";
|
import Link from "@mui/material/Link";
|
||||||
import HomeIcon from "@mui/icons-material/Home";
|
import HomeIcon from "@mui/icons-material/Home";
|
||||||
|
import FilterAltOutlinedIcon from "@mui/icons-material/FilterAltOutlined";
|
||||||
|
|
||||||
export interface LocationProps {
|
export interface LocationProps {
|
||||||
bottomSeperation?: string;
|
bottomSeperation?: string;
|
||||||
|
showFilter?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function Location(props: LocationProps) {
|
export default function Location(props: LocationProps) {
|
||||||
const { bottomSeperation = "55px" } = props;
|
const { bottomSeperation = "55px", showFilter = false } = props;
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const location = useLocationStore();
|
const location = useLocationStore();
|
||||||
|
const filter = useFilterStore();
|
||||||
|
|
||||||
const goTo = (path: string) => {
|
const goTo = (path: string) => {
|
||||||
router.push(path);
|
router.push(path);
|
||||||
@@ -48,10 +52,26 @@ export default function Location(props: LocationProps) {
|
|||||||
))}
|
))}
|
||||||
</Breadcrumbs>
|
</Breadcrumbs>
|
||||||
</div>
|
</div>
|
||||||
<div className={style.locationTitle}>
|
<div
|
||||||
|
className={
|
||||||
|
showFilter
|
||||||
|
? `${style.locationTitle} ${style.locationTitleFilter}`
|
||||||
|
: style.locationTitle
|
||||||
|
}
|
||||||
|
>
|
||||||
{location.last()?.icon}
|
{location.last()?.icon}
|
||||||
<h1>{location.last()?.title}</h1>
|
<h1>{location.last()?.title}</h1>
|
||||||
</div>
|
</div>
|
||||||
|
{showFilter && (
|
||||||
|
<button
|
||||||
|
className={style.filterButton}
|
||||||
|
onClick={() => filter.toggle()}
|
||||||
|
aria-label="Filtrar"
|
||||||
|
title="Filtrar"
|
||||||
|
>
|
||||||
|
<FilterAltOutlinedIcon sx={{ fontSize: "32px" }} />
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
Reference in New Issue
Block a user