RecentChangesContentSkeleton.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import { Skeleton } from '~/components/Skeleton';
  3. import styles from './RecentChangesSubstance.module.scss';
  4. const SkeletonItem = () => {
  5. const isSmall = window.localStorage.isRecentChangesSidebarSmall === 'true';
  6. return (
  7. <li className={`list-group-item ${styles['list-group-item']} ${isSmall ? 'py-2' : 'py-3'} px-0`}>
  8. <div className="d-flex w-100">
  9. <Skeleton additionalClass="rounded-circle picture" roundedPill />
  10. <div className="flex-grow-1 ms-2">
  11. <Skeleton additionalClass={`grw-recent-changes-skeleton-small ${styles['grw-recent-changes-skeleton-small']}`} />
  12. <Skeleton additionalClass={`grw-recent-changes-skeleton-h5 ${styles['grw-recent-changes-skeleton-h5']} ${isSmall ? 'my-0' : 'my-2'}`} />
  13. <div className="d-flex justify-content-end grw-recent-changes-item-lower pt-1">
  14. <Skeleton additionalClass={`grw-recent-changes-skeleton-date ${styles['grw-recent-changes-skeleton-date']}`} />
  15. </div>
  16. </div>
  17. </div>
  18. </li>
  19. );
  20. };
  21. const RecentChangesContentSkeleton = (): JSX.Element => {
  22. return (
  23. <div className="grw-recent-changes py-3">
  24. <ul className="list-group list-group-flush">
  25. <SkeletonItem />
  26. <SkeletonItem />
  27. <SkeletonItem />
  28. <li className="list-group-item p-0"></li>
  29. </ul>
  30. </div>
  31. );
  32. };
  33. export default RecentChangesContentSkeleton;