feat(tender-list): add GSAP for animations and enhance table functionality

- Integrated GSAP for improved animations in the tender list components, enhancing user experience during data loading and transitions.
- Refactored TendersTable and TenderListFilters to utilize new animation features, providing smoother interactions.
- Updated TableBody and TableSkeleton components to support ref forwarding, improving flexibility in rendering and animations.
- Enhanced useTenderListPresenter to manage loading states and pagination more effectively, ensuring better data handling and user feedback.
This commit is contained in:
AmirReza Jamali
2026-05-13 12:19:42 +03:30
parent 37e2744420
commit d1bc56dc60
7 changed files with 747 additions and 316 deletions
+19 -19
View File
@@ -1,3 +1,4 @@
import * as React from "react";
import { Skeleton } from "./skeleton";
import { TableBody, TableCell, TableRow } from "./table";
@@ -7,24 +8,23 @@ interface IProps {
cellColSpan?: number;
}
const TableSkeleton = ({
column,
length = 20,
cellColSpan = 100,
}: IProps) => {
return (
<TableBody data-cy="table-skeleton">
{Array.from({ length }).map((_, i) => (
<TableRow key={i} data-cy={`table-skeleton-row-${i}`}>
{Array.from({ length: column }).map((_, j) => (
<TableCell key={j} colSpan={cellColSpan} data-cy="table-skeleton-cell">
<Skeleton className="h-8 rounded-lg" />
</TableCell>
))}
</TableRow>
))}
</TableBody>
);
};
const TableSkeleton = React.forwardRef<HTMLTableSectionElement, IProps>(
({ column, length = 20, cellColSpan = 100 }, ref) => {
return (
<TableBody ref={ref} data-cy="table-skeleton">
{Array.from({ length }).map((_, i) => (
<TableRow key={i} data-cy={`table-skeleton-row-${i}`}>
{Array.from({ length: column }).map((_, j) => (
<TableCell key={j} colSpan={cellColSpan} data-cy="table-skeleton-cell">
<Skeleton className="h-8 rounded-lg" />
</TableCell>
))}
</TableRow>
))}
</TableBody>
);
},
);
TableSkeleton.displayName = "TableSkeleton";
export default TableSkeleton;