Skip to content

Commit

Permalink
Fix linter
Browse files Browse the repository at this point in the history
  • Loading branch information
andrzejewsky committed Jul 10, 2023
1 parent 6da944a commit 6efd523
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions src/components/ConditionalFilter/FiltersArea.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import {
_ExperimentalFilters,
Box,
FilterEvent,
} from "@saleor/macaw-ui/next";
import React from "react";

import { useProductFilterAPIProvider } from "./API/ProductFilterAPIProvider";
import { FilterContainer } from "./FilterElement";
import { useFilterContainer } from "./useFilterContainer";
import { useFilterLeftOperandsProvider } from "./useFilterLeftOperands";

interface FiltersAreaProps {
filterValue: FilterContainer
onConfirm: (value: FilterContainer) => void
}

export const FiltersArea = ({ filterValue, onConfirm }: FiltersAreaProps) => {
const apiProvider = useProductFilterAPIProvider();
const leftOperandsProvider = useFilterLeftOperandsProvider();

const {
value,
addEmpty,
removeAt,
updateLeftOperator,
updateRightOperator,
updateCondition,
updateRightOptions,
updateLeftOptions,
} = useFilterContainer(filterValue, apiProvider, leftOperandsProvider);

const handleStateChange = async (event: FilterEvent["detail"]) => {
if (!event) return

if (event.type === "row.add") {
addEmpty();
}

if (event.type === "row.remove") {
removeAt(event.path);
}

if (event.type === "leftOperator.onChange") {
updateLeftOperator(event.path, event.value);
}

if (event.type === "condition.onChange") {
updateCondition(event.path.split(".")[0], event.value);
}

if (event.type === "rightOperator.onChange") {
updateRightOperator(event.path.split(".")[0], event.value);
}

if (event.type === "rightOperator.onFocus") {
updateRightOptions(event.path.split(".")[0], "");
}

if (event.type === "rightOperator.onInputValueChange") {
updateRightOptions(event.path.split(".")[0], event.value);
}

if (event.type === "leftOperator.onInputValueChange") {
updateLeftOptions(event.path.split(".")[0], event.value);
}
};

return (
<Box>
<_ExperimentalFilters
leftOptions={leftOperandsProvider.operands}
// @ts-expect-error
value={value}
onChange={handleStateChange}
>
<_ExperimentalFilters.Footer>
<_ExperimentalFilters.AddRowButton>
Add new row
</_ExperimentalFilters.AddRowButton>
<_ExperimentalFilters.ConfirmButton onClick={() => onConfirm(value)}>
Confirm
</_ExperimentalFilters.ConfirmButton>
</_ExperimentalFilters.Footer>
</_ExperimentalFilters>
</Box>
);
};

0 comments on commit 6efd523

Please sign in to comment.