@addev-be/ui 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@addev-be/ui",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "watch": "tsc -b --watch",
@@ -42,6 +42,7 @@
42
42
  "peerDependencies": {
43
43
  "react": "^18.3.1",
44
44
  "react-dom": "^18.3.1",
45
+ "react-router-dom": "^6.27.0",
45
46
  "styled-components": "^6.1.13",
46
47
  "vite-plugin-svgr": "^4.2.0"
47
48
  },
@@ -1,2 +1,3 @@
1
1
  export * from './useElementSize';
2
+ export * from './useShowArchived';
2
3
  export * from './useWindowSize';
@@ -0,0 +1,21 @@
1
+ import { useCallback, useState } from 'react';
2
+
3
+ import { ConditionDTO } from '../services/sqlRequests';
4
+
5
+ export const useShowArchived = (initialValue?: boolean) => {
6
+ const [showArchived, setShowArchived] = useState(initialValue ?? false);
7
+
8
+ const toggleShowArchived = useCallback((value?: boolean) => {
9
+ setShowArchived((prev) => (value === undefined ? !prev : value));
10
+ }, []);
11
+
12
+ const archivedConditions: ConditionDTO[] = showArchived
13
+ ? []
14
+ : [{ field: 'Archived', operator: 'notEquals', value: 1 }];
15
+
16
+ return {
17
+ archivedConditions,
18
+ showArchived,
19
+ toggleShowArchived,
20
+ };
21
+ };
@@ -4,12 +4,14 @@ export * from './hooks';
4
4
  export * from './globalSearch';
5
5
 
6
6
  export * from './requests/auth';
7
+ export * from './requests/generic';
7
8
  export * from './requests/tracking';
8
9
  export * from './requests/users';
9
10
  export * from './requests/userProfiles';
10
11
 
11
12
  export * from './types/auth';
12
13
  export * from './types/base';
14
+ export * from './types/generic';
13
15
  export * from './types/tracking';
14
16
  export * from './types/users';
15
17
  export * from './types/userProfiles';
@@ -0,0 +1,62 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import * as t from 'io-ts';
3
+
4
+ import {
5
+ GenericArchiveRequestDTO,
6
+ GenericArchiveResponseDTO,
7
+ GenericDeleteRequestDTO,
8
+ GenericDeleteResponseDTO,
9
+ GenericGetAllRequestDTO,
10
+ GenericGetRequestDTO,
11
+ getGenericGetAllResponseDtoCodec,
12
+ getGenericGetResponseDtoCodec,
13
+ getGenericSaveRequestDtoCodec,
14
+ getGenericSaveResponseDtoCodec,
15
+ } from '../types/generic';
16
+
17
+ import { useLoadingRequestHandler } from '../hooks';
18
+ import { userDtoCodec } from '../types/users';
19
+
20
+ export const useGenericGetRequestHandler = <C extends t.Mixed>(
21
+ name: string,
22
+ codec: C
23
+ ) => {
24
+ const responseCodec = getGenericGetResponseDtoCodec(codec);
25
+ return useLoadingRequestHandler<
26
+ GenericGetRequestDTO,
27
+ t.TypeOf<typeof responseCodec>
28
+ >(name);
29
+ };
30
+
31
+ export const useGenericGetAllRequestHandler = <C extends t.Mixed>(
32
+ name: string,
33
+ codec: C
34
+ ) => {
35
+ const responseCodec = getGenericGetAllResponseDtoCodec(codec);
36
+ return useLoadingRequestHandler<
37
+ GenericGetAllRequestDTO,
38
+ t.TypeOf<typeof responseCodec>
39
+ >(name);
40
+ };
41
+
42
+ export const useGenericSaveRequestHandler = <C extends t.Mixed>(
43
+ name: string,
44
+ codec: C
45
+ ) => {
46
+ const requestCodec = getGenericSaveRequestDtoCodec(codec);
47
+ const responseCodec = getGenericSaveResponseDtoCodec(codec);
48
+ return useLoadingRequestHandler<
49
+ t.TypeOf<typeof requestCodec>,
50
+ t.TypeOf<typeof responseCodec>
51
+ >(name);
52
+ };
53
+
54
+ export const useGenericDeleteRequestHandler = (name: string) =>
55
+ useLoadingRequestHandler<GenericDeleteRequestDTO, GenericDeleteResponseDTO>(
56
+ name
57
+ );
58
+
59
+ export const useGenericArchiveRequestHandler = (name: string) =>
60
+ useLoadingRequestHandler<GenericArchiveRequestDTO, GenericArchiveResponseDTO>(
61
+ name
62
+ );
@@ -0,0 +1,92 @@
1
+ import * as t from 'io-ts';
2
+
3
+ export const genericGetRequestDtoCodec = t.type(
4
+ {
5
+ id: t.string,
6
+ },
7
+ 'GenericGetRequestDTO'
8
+ );
9
+
10
+ export const getGenericGetResponseDtoCodec = <C extends t.Mixed>(codec: C) =>
11
+ t.type({
12
+ status: t.number,
13
+ data: codec,
14
+ });
15
+
16
+ export type GenericGetRequestDTO = t.TypeOf<typeof genericGetRequestDtoCodec>;
17
+
18
+ /*****/
19
+
20
+ export const genericGetAllRequestDtoCodec = t.type(
21
+ {},
22
+ 'GenericGetAllRequestDTO'
23
+ );
24
+
25
+ export const getGenericGetAllResponseDtoCodec = <C extends t.Mixed>(codec: C) =>
26
+ t.type({
27
+ status: t.number,
28
+ data: t.array(codec),
29
+ });
30
+
31
+ export type GenericGetAllRequestDTO = t.TypeOf<
32
+ typeof genericGetAllRequestDtoCodec
33
+ >;
34
+
35
+ /*****/
36
+
37
+ export const getGenericSaveRequestDtoCodec = <C extends t.Mixed>(codec: C) =>
38
+ t.type({
39
+ data: codec,
40
+ });
41
+
42
+ export const getGenericSaveResponseDtoCodec = <C extends t.Mixed>(codec: C) =>
43
+ t.type({
44
+ status: t.number,
45
+ data: codec,
46
+ });
47
+
48
+ /*****/
49
+
50
+ export const genericArchiveRequestDtoCodec = t.type(
51
+ {
52
+ id: t.string,
53
+ },
54
+ 'GenericArchiveRequestDTO'
55
+ );
56
+
57
+ export const genericArchiveResponseDtoCodec = t.type(
58
+ {
59
+ status: t.number,
60
+ },
61
+ 'GenericArchiveResponseDTO'
62
+ );
63
+
64
+ export type GenericArchiveRequestDTO = t.TypeOf<
65
+ typeof genericArchiveRequestDtoCodec
66
+ >;
67
+ export type GenericArchiveResponseDTO = t.TypeOf<
68
+ typeof genericArchiveResponseDtoCodec
69
+ >;
70
+
71
+ /*****/
72
+
73
+ export const genericDeleteRequestDtoCodec = t.type(
74
+ {
75
+ id: t.string,
76
+ },
77
+ 'GenericDeleteRequestDTO'
78
+ );
79
+
80
+ export const genericDeleteResponseDtoCodec = t.type(
81
+ {
82
+ status: t.number,
83
+ },
84
+ 'GenericDeleteResponseDTO'
85
+ );
86
+
87
+ export type GenericDeleteRequestDTO = t.TypeOf<
88
+ typeof genericDeleteRequestDtoCodec
89
+ >;
90
+ export type GenericDeleteResponseDTO = t.TypeOf<
91
+ typeof genericDeleteResponseDtoCodec
92
+ >;