Skip to content

Commit e405018

Browse files
committed
feat: add withOption props
1 parent b9989a9 commit e405018

File tree

4 files changed

+53
-39
lines changed

4 files changed

+53
-39
lines changed

src/app/sandbox/table/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ export default function ComponentPage() {
190190
setTableState={setTableState}
191191
className='mt-8'
192192
withFilter
193+
withOption
193194
/>
194195

195196
<Typography
@@ -217,6 +218,7 @@ export default function ComponentPage() {
217218
unpaginatedData?.data ? filterData(unpaginatedData.data) : []
218219
}
219220
withFilter
221+
withOption
220222
/>
221223

222224
<Typography

src/components/table/PaginatedTable.tsx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type PaginatedTableProps<T extends object> = {
2828
pageSize?: number;
2929
omitSort?: boolean;
3030
withFilter?: boolean;
31+
withOption?: boolean;
3132
} & React.ComponentPropsWithoutRef<'div'>;
3233

3334
export default function PaginatedTable<T extends object>({
@@ -38,6 +39,7 @@ export default function PaginatedTable<T extends object>({
3839
pageSize = 10,
3940
omitSort = false,
4041
withFilter = false,
42+
withOption = false,
4143
...rest
4244
}: PaginatedTableProps<T>) {
4345
const [globalFilter, setGlobalFilter] = React.useState('');
@@ -98,19 +100,21 @@ export default function PaginatedTable<T extends object>({
98100
buttonClassname={popUpFilterProps.buttonClassname}
99101
/>
100102
)}
101-
<TOption
102-
icon={<FiList className='text-typo-secondary' />}
103-
value={table.getState().pagination.pageSize}
104-
onChange={(e) => {
105-
table.setPageSize(Number(e.target.value));
106-
}}
107-
>
108-
{[5, 10, 25].map((page) => (
109-
<option key={page} value={page}>
110-
{page} Entries
111-
</option>
112-
))}
113-
</TOption>
103+
{withOption && (
104+
<TOption
105+
icon={<FiList className='text-typo-secondary' />}
106+
value={table.getState().pagination.pageSize}
107+
onChange={(e) => {
108+
table.setPageSize(Number(e.target.value));
109+
}}
110+
>
111+
{[5, 10, 25].map((page) => (
112+
<option key={page} value={page}>
113+
{page} Entries
114+
</option>
115+
))}
116+
</TOption>
117+
)}
114118
</div>
115119
</div>
116120
<div className='-mx-4 -my-2 mt-2 overflow-x-auto sm:-mx-6 lg:-mx-8'>

src/components/table/ServerCard.tsx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ type ServerCardProps<T extends object> = {
3939
tableState: ServerCardState;
4040
setTableState: SetServerCardState;
4141
withFilter?: boolean;
42+
withOption?: boolean;
4243
} & React.ComponentPropsWithoutRef<'div'>;
4344

4445
export default function ServerCard<T extends object>({
@@ -51,6 +52,7 @@ export default function ServerCard<T extends object>({
5152
tableState,
5253
setTableState,
5354
withFilter = false,
55+
withOption = false,
5456
...rest
5557
}: ServerCardProps<T>) {
5658
const lastPage =
@@ -95,19 +97,21 @@ export default function ServerCard<T extends object>({
9597
buttonClassname={popUpFilterProps.buttonClassname}
9698
/>
9799
)}
98-
<TOption
99-
icon={<FiList />}
100-
value={table.getState().pagination.pageSize}
101-
onChange={(e) => {
102-
table.setPageSize(Number(e.target.value));
103-
}}
104-
>
105-
{[5, 10, 25].map((page) => (
106-
<option key={page} value={page}>
107-
{page} Entries
108-
</option>
109-
))}
110-
</TOption>
100+
{withOption && (
101+
<TOption
102+
icon={<FiList />}
103+
value={table.getState().pagination.pageSize}
104+
onChange={(e) => {
105+
table.setPageSize(Number(e.target.value));
106+
}}
107+
>
108+
{[5, 10, 25].map((page) => (
109+
<option key={page} value={page}>
110+
{page} Entries
111+
</option>
112+
))}
113+
</TOption>
114+
)}
111115
</div>
112116
</div>
113117
<div className='flex flex-col'>

src/components/table/ServerTable.tsx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ type ServerTableProps<T extends object> = {
4343
setTableState: SetServerTableState;
4444
omitSort?: boolean;
4545
withFilter?: boolean;
46+
withOption?: boolean;
4647
} & React.ComponentPropsWithoutRef<'div'>;
4748

4849
export default function ServerTable<T extends object>({
@@ -56,6 +57,7 @@ export default function ServerTable<T extends object>({
5657
setTableState,
5758
omitSort = false,
5859
withFilter = false,
60+
withOption = false,
5961
...rest
6062
}: ServerTableProps<T>) {
6163
const lastPage =
@@ -100,19 +102,21 @@ export default function ServerTable<T extends object>({
100102
buttonClassname={popUpFilterProps.buttonClassname}
101103
/>
102104
)}
103-
<TOption
104-
icon={<FiList />}
105-
value={table.getState().pagination.pageSize}
106-
onChange={(e) => {
107-
table.setPageSize(Number(e.target.value));
108-
}}
109-
>
110-
{[5, 10, 25].map((page) => (
111-
<option key={page} value={page}>
112-
{page} Entries
113-
</option>
114-
))}
115-
</TOption>
105+
{withOption && (
106+
<TOption
107+
icon={<FiList />}
108+
value={table.getState().pagination.pageSize}
109+
onChange={(e) => {
110+
table.setPageSize(Number(e.target.value));
111+
}}
112+
>
113+
{[5, 10, 25].map((page) => (
114+
<option key={page} value={page}>
115+
{page} Entries
116+
</option>
117+
))}
118+
</TOption>
119+
)}
116120
</div>
117121
</div>
118122
<div className='-mx-4 -my-2 mt-2 overflow-x-auto sm:-mx-6 lg:-mx-8'>

0 commit comments

Comments
 (0)