@addev-be/ui 0.11.5 → 0.11.7

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.11.5",
3
+ "version": "0.11.7",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "watch": "tsc -b --watch",
@@ -10,9 +10,11 @@ import { useDataGridContext } from '../hooks';
10
10
  export const useFilterModal = <R,>({
11
11
  columnKey,
12
12
  context,
13
+ onClose,
13
14
  }: {
14
15
  columnKey: string;
15
16
  context: DataGridContext<R>;
17
+ onClose?: () => void;
16
18
  }) => {
17
19
  const [isVisible, setIsVisible] = useState(false);
18
20
  const { filters = {}, columns, setFilters } = useDataGridContext<R>(context);
@@ -26,7 +28,8 @@ export const useFilterModal = <R,>({
26
28
  }, []);
27
29
  const closeModal = useCallback(() => {
28
30
  setIsVisible(false);
29
- }, []);
31
+ onClose?.();
32
+ }, [onClose]);
30
33
 
31
34
  const onClearClicked = useCallback(() => {
32
35
  const newFilters = { ...filters };
@@ -93,7 +93,7 @@ export const DataGridFilterMenu = <R,>({
93
93
  contextMenu = true,
94
94
  showTotalButton = true,
95
95
  }: FilterValuesProps<R>) => {
96
- const { openModal, modal } = useFilterModal({ columnKey, context });
96
+ const { openModal, modal } = useFilterModal({ columnKey, context, onClose });
97
97
  const {
98
98
  filters = {},
99
99
  footers = {},
@@ -86,7 +86,6 @@ export const SqlRequestDataGridInner = <R,>(
86
86
  const refresh = useCallback(() => {
87
87
  setRows([]);
88
88
  setStart(0);
89
- setLength(-1);
90
89
  setCount(-1);
91
90
  }, []);
92
91
 
@@ -125,30 +124,33 @@ export const SqlRequestDataGridInner = <R,>(
125
124
  length = 0,
126
125
  getCount = false
127
126
  ) => {
128
- sqlRequest({
129
- columns: columns.includes('Id') ? columns : [...columns, 'Id'],
130
- returnColumns: returnColumns.includes('Id')
131
- ? returnColumns
132
- : [...returnColumns, 'Id'],
133
- columnTypes: columnTypes.includes('Id')
134
- ? columnTypes
135
- : [...columnTypes, 'Id'],
136
- conditions,
137
- orderBy,
138
- start,
139
- length: Math.max(length, 0),
140
- getCount,
141
- }).then((response) => {
142
- if (getCount) {
143
- currentRows.current = Array(response.count).fill(null);
144
- if (getCount) setCount(response.count ?? 0);
145
- }
146
- const parsedRows = props.parser
147
- ? response.data.map(props.parser)
148
- : (response.data as R[]);
149
- currentRows.current.splice(start, length, ...parsedRows);
150
- setRows([...currentRows.current]);
151
- });
127
+ if (length > 0) {
128
+ sqlRequest({
129
+ columns: columns.includes('Id') ? columns : [...columns, 'Id'],
130
+ returnColumns: returnColumns.includes('Id')
131
+ ? returnColumns
132
+ : [...returnColumns, 'Id'],
133
+ columnTypes: columnTypes.includes('Id')
134
+ ? columnTypes
135
+ : [...columnTypes, 'Id'],
136
+ conditions,
137
+ orderBy,
138
+ start,
139
+ length,
140
+ getCount,
141
+ }).then((response) => {
142
+ if (getCount) {
143
+ currentRows.current = Array(response.count).fill(null);
144
+ if (getCount) setCount(response.count ?? 0);
145
+ }
146
+ const data = response.data ?? [];
147
+ const parsedRows = props.parser
148
+ ? data.map(props.parser)
149
+ : (data as R[]);
150
+ currentRows.current.splice(start, length, ...parsedRows);
151
+ setRows([...currentRows.current]);
152
+ });
153
+ }
152
154
  },
153
155
  100,
154
156
  {
@@ -192,7 +194,7 @@ export const SqlRequestDataGridInner = <R,>(
192
194
 
193
195
  useEffect(() => {
194
196
  if (
195
- length < 0 ||
197
+ (!rows.length && count < 0) ||
196
198
  rows.slice(start, start + length).some((row) => row === null)
197
199
  ) {
198
200
  loadRows.current(
@@ -47,7 +47,7 @@ export const SqlRequestGridInner = <R, P extends object = {}>(
47
47
  const currentRows = useRef<R[]>([]);
48
48
  const [rows, setRows] = useState<R[]>([]);
49
49
  const [start, setStart] = useState(0);
50
- const [length, setLength] = useState(50);
50
+ const [length, setLength] = useState(-1);
51
51
  const [count, setCount] = useState(-1);
52
52
  const [sqlRequest] = useSqlRequestHandler<R>(props.type);
53
53
  const [conditions, setConditions] = useState<Record<string, ConditionDTO>>(
@@ -97,30 +97,33 @@ export const SqlRequestGridInner = <R, P extends object = {}>(
97
97
  length = 100,
98
98
  getCount = false
99
99
  ) => {
100
- sqlRequest({
101
- columns: columns.includes('Id') ? columns : [...columns, 'Id'],
102
- returnColumns: returnColumns.includes('Id')
103
- ? returnColumns
104
- : [...returnColumns, 'Id'],
105
- columnTypes: columnTypes.includes('Id')
106
- ? columnTypes
107
- : [...columnTypes, 'Id'],
108
- conditions,
109
- orderBy,
110
- start,
111
- length,
112
- getCount,
113
- }).then((response) => {
114
- if (getCount) {
115
- currentRows.current = Array(response.count).fill(null);
116
- if (getCount) setCount(response.count ?? 0);
117
- }
118
- const parsedRows = props.parser
119
- ? response.data.map(props.parser)
120
- : (response.data as R[]);
121
- currentRows.current.splice(start, length, ...parsedRows);
122
- setRows([...currentRows.current]);
123
- });
100
+ if (length > 0) {
101
+ sqlRequest({
102
+ columns: columns.includes('Id') ? columns : [...columns, 'Id'],
103
+ returnColumns: returnColumns.includes('Id')
104
+ ? returnColumns
105
+ : [...returnColumns, 'Id'],
106
+ columnTypes: columnTypes.includes('Id')
107
+ ? columnTypes
108
+ : [...columnTypes, 'Id'],
109
+ conditions,
110
+ orderBy,
111
+ start,
112
+ length,
113
+ getCount,
114
+ }).then((response) => {
115
+ if (getCount) {
116
+ currentRows.current = Array(response.count).fill(null);
117
+ if (getCount) setCount(response.count ?? 0);
118
+ }
119
+ const data = response.data ?? [];
120
+ const parsedRows = props.parser
121
+ ? data.map(props.parser)
122
+ : (data as R[]);
123
+ currentRows.current.splice(start, length, ...parsedRows);
124
+ setRows([...currentRows.current]);
125
+ });
126
+ }
124
127
  },
125
128
  100,
126
129
  {
@@ -133,7 +136,6 @@ export const SqlRequestGridInner = <R, P extends object = {}>(
133
136
  const refresh = useCallback(() => {
134
137
  setRows([]);
135
138
  setStart(0);
136
- setLength(50);
137
139
  setCount(-1);
138
140
  }, []);
139
141
 
@@ -195,7 +197,7 @@ export const SqlRequestGridInner = <R, P extends object = {}>(
195
197
 
196
198
  useEffect(() => {
197
199
  if (
198
- !rows.length ||
200
+ (!rows.length && count < 0) ||
199
201
  rows.slice(start, start + length).some((row) => row === null)
200
202
  ) {
201
203
  loadRows.current(
@@ -104,6 +104,7 @@ export const AuthenticationProvider: FC<AuthenticationProviderProps> = ({
104
104
  useEffect(() => {
105
105
  if (token) {
106
106
  sessionStorage.setItem('authToken', token);
107
+ authenticate();
107
108
  } else {
108
109
  sessionStorage.removeItem('authToken');
109
110
  }
@@ -24,4 +24,8 @@ export const PortalsWrapper = styled.div.attrs({
24
24
 
25
25
  export const PortalContainer = styled.div.attrs({
26
26
  className: 'PortalContainer',
27
- })``;
27
+ })`
28
+ z-index: 9999;
29
+ position: fixed;
30
+ inset: 0;
31
+ `;