diff --git a/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.jsx b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.jsx
deleted file mode 100644
index b60193a..0000000
--- a/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.jsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { useStore } from '@/stores/hooks';
-import { observer } from 'mobx-react-lite';
-import { Table } from 'ui/antd';
-
-export const PolicyTable = observer(({ getter, ...props }) => {
- const { $tables } = useStore();
- const { getRows, setSelectedKey, getSelectedRow } = getter($tables.elt);
-
- return (
-
({ disabled: !record.sum || record.isFetching }),
- hideSelectAll: true,
- onSelect: (record) => {
- if (record.sum > 0) setSelectedKey(record.key);
- },
- selectedRowKeys: getSelectedRow ? [getSelectedRow.key] : [],
- type: 'radio',
- }}
- expandable={{
- expandedRowRender: (record) => record.message,
- rowExpandable: (record) => record.message || record.children,
- }}
- {...props}
- />
- );
-});
diff --git a/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx
new file mode 100644
index 0000000..35fcc8a
--- /dev/null
+++ b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx
@@ -0,0 +1,37 @@
+import type { columns } from '../lib/config';
+import type { Getter } from '../types';
+import { useStore } from '@/stores/hooks';
+import { observer } from 'mobx-react-lite';
+import { Table } from 'ui/antd';
+
+export const PolicyTable = observer(
+ ({ getter, ...props }: { columns: typeof columns; getter: Getter }) => {
+ const { $tables } = useStore();
+ const { getRows, setSelectedKey, getSelectedRow } = getter($tables.elt);
+
+ return (
+ ({ disabled: !record.sum || record.isFetching }),
+ hideSelectAll: true,
+ onSelect: (record) => {
+ if (record.sum > 0) setSelectedKey(record.key);
+ },
+ selectedRowKeys: getSelectedRow ? [getSelectedRow.key] : [],
+ type: 'radio',
+ }}
+ expandable={{
+ expandedRowRender: (record) => record.message,
+ rowExpandable: (record) => Boolean(record.message),
+ }}
+ {...props}
+ />
+ );
+ }
+);
diff --git a/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.jsx b/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx
similarity index 78%
rename from apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.jsx
rename to apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx
index 6e29f0d..b2e58f2 100644
--- a/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.jsx
+++ b/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx
@@ -1,9 +1,10 @@
+import type { Getter } from '../types';
import { useStore } from '@/stores/hooks';
import { observer } from 'mobx-react-lite';
import { Button } from 'ui/antd';
import { ReloadOutlined } from 'ui/elements/icons';
-export const ReloadButton = observer(({ getter }) => {
+export const ReloadButton = observer(({ getter }: { getter: Getter }) => {
const { $tables } = useStore();
const { validation } = getter($tables.elt);
diff --git a/apps/web/Components/Calculation/Form/ELT/Components/Validation.jsx b/apps/web/Components/Calculation/Form/ELT/Components/Validation.tsx
similarity index 77%
rename from apps/web/Components/Calculation/Form/ELT/Components/Validation.jsx
rename to apps/web/Components/Calculation/Form/ELT/Components/Validation.tsx
index 836f9ff..3d7b96a 100644
--- a/apps/web/Components/Calculation/Form/ELT/Components/Validation.jsx
+++ b/apps/web/Components/Calculation/Form/ELT/Components/Validation.tsx
@@ -1,8 +1,9 @@
+import type { Getter } from '../types';
import { useStore } from '@/stores/hooks';
import { observer } from 'mobx-react-lite';
import { Alert } from 'ui/antd';
-export const Validation = observer(({ getter }) => {
+export const Validation = observer(({ getter }: { getter: Getter }) => {
const { $tables, $process } = useStore();
const { validation } = getter($tables.elt);
@@ -18,5 +19,5 @@ export const Validation = observer(({ getter }) => {
);
}
- return false;
+ return null;
});
diff --git a/apps/web/Components/Calculation/Form/ELT/Kasko.jsx b/apps/web/Components/Calculation/Form/ELT/Kasko.tsx
similarity index 86%
rename from apps/web/Components/Calculation/Form/ELT/Kasko.jsx
rename to apps/web/Components/Calculation/Form/ELT/Kasko.tsx
index 880ce3b..53df43b 100644
--- a/apps/web/Components/Calculation/Form/ELT/Kasko.jsx
+++ b/apps/web/Components/Calculation/Form/ELT/Kasko.tsx
@@ -1,11 +1,10 @@
import { PolicyTable, ReloadButton, Validation } from './Components';
import { columns } from './lib/config';
+import type { Getter } from './types';
import { clone } from 'tools';
import { Flex } from 'ui/grid';
-function getter(eltStore) {
- return eltStore.kasko;
-}
+const getter: Getter = ({ osago }) => osago;
const kaskoColumns = clone(columns);
kaskoColumns[0].title = 'Страховая компания КАСКО';
diff --git a/apps/web/Components/Calculation/Form/ELT/Osago.jsx b/apps/web/Components/Calculation/Form/ELT/Osago.tsx
similarity index 86%
rename from apps/web/Components/Calculation/Form/ELT/Osago.jsx
rename to apps/web/Components/Calculation/Form/ELT/Osago.tsx
index 8670cbd..d030a2b 100644
--- a/apps/web/Components/Calculation/Form/ELT/Osago.jsx
+++ b/apps/web/Components/Calculation/Form/ELT/Osago.tsx
@@ -1,11 +1,10 @@
import { PolicyTable, ReloadButton, Validation } from './Components';
import { columns } from './lib/config';
+import type { Getter } from './types';
import { clone } from 'tools';
import { Flex } from 'ui/grid';
-function getter(eltStore) {
- return eltStore.osago;
-}
+const getter: Getter = ({ osago }) => osago;
const osagoColumns = clone(columns);
osagoColumns[0].title = 'Страховая компания ОСАГО';
diff --git a/apps/web/Components/Calculation/Form/ELT/types.ts b/apps/web/Components/Calculation/Form/ELT/types.ts
index 0171f15..ad630e6 100644
--- a/apps/web/Components/Calculation/Form/ELT/types.ts
+++ b/apps/web/Components/Calculation/Form/ELT/types.ts
@@ -1,4 +1,7 @@
import type { RowSchema } from '@/config/schema/elt';
+import type ELTStore from '@/stores/tables/elt';
+import type PolicyStore from '@/stores/tables/elt/policy';
import type { z } from 'zod';
export type Row = z.infer;
+export type Getter = (eltStore: ELTStore) => PolicyStore;