change price logic on the ,rule engine ui, auto generate the contrat

This commit is contained in:
marshal
2026-06-08 10:04:23 +03:00
parent 4993453993
commit 88df20be6b
76 changed files with 4907 additions and 225 deletions

View File

@@ -1,42 +1,50 @@
import { LayoutGrid, Plus, Search, Table2 } from "lucide-react";
import { LayoutGrid, ListOrdered, Plus, Search, Table2 } from "lucide-react";
import { Button, TextInput, Group, SegmentedControl } from "@mantine/core";
import type { RuleEngineViewMode } from "./useRuleEngineViewMode";
export interface RuleEngineToolbarProps {
search: string;
onSearchChange: (value: string) => void;
searchPlaceholder: string;
search?: string;
onSearchChange?: (value: string) => void;
searchPlaceholder?: string;
showSearch?: boolean;
onAdd?: () => void;
addLabel?: string;
onManageOrder?: () => void;
viewMode: RuleEngineViewMode;
onViewModeChange: (mode: RuleEngineViewMode) => void;
}
const RuleEngineToolbar = ({
search,
search = "",
onSearchChange,
searchPlaceholder,
searchPlaceholder = "Search…",
showSearch = true,
onAdd,
addLabel = "Add",
onManageOrder,
viewMode,
onViewModeChange,
}: RuleEngineToolbarProps) => (
<Group gap="md" justify="space-between" align="center" wrap="nowrap">
<TextInput
placeholder={searchPlaceholder}
value={search}
onChange={(e) => onSearchChange(e.currentTarget.value)}
leftSection={<Search size={18} />}
size="md"
radius="lg"
style={{ flex: 1, minWidth: 0 }}
styles={{
input: {
borderColor: "var(--mantine-color-gray-3)",
},
}}
/>
{showSearch && onSearchChange ? (
<TextInput
placeholder={searchPlaceholder}
value={search}
onChange={(e) => onSearchChange(e.currentTarget.value)}
leftSection={<Search size={18} />}
size="md"
radius="lg"
style={{ flex: 1, minWidth: 0 }}
styles={{
input: {
borderColor: "var(--mantine-color-gray-3)",
},
}}
/>
) : (
<div style={{ flex: 1 }} />
)}
<Group gap="md" align="center" justify="flex-end" wrap="nowrap">
<SegmentedControl
@@ -72,6 +80,21 @@ const RuleEngineToolbar = ({
}}
/>
{onManageOrder ? (
<Button
onClick={onManageOrder}
leftSection={<ListOrdered size={18} />}
size="sm"
radius="lg"
variant="light"
color="gray"
fw={600}
style={{ whiteSpace: "nowrap" }}
>
Manage order
</Button>
) : null}
{onAdd ? (
<Button
onClick={onAdd}