Summary
RafflePage.tsx defines a local Skeleton component at the top of the file:
const Skeleton = ({ className }: { className?: string }) => (
<div className={`animate-pulse bg-gray-200 dark:bg-white/5 rounded-2xl ${className}`} />
);
The project already has client/src/components/ui/Skeleton.tsx. Keeping a local copy silently diverges styles.
What to do
- Verify
Skeleton.tsx in components/ui/ accepts a className prop with the same semantics.
- Replace the inline definition in
RafflePage.tsx with an import from components/ui/Skeleton.
- Check every other page and component for similar inline skeleton definitions and consolidate them.
Acceptance criteria
- No file in
client/src/pages/ defines a local Skeleton component.
- The canonical
ui/Skeleton is used everywhere.
Summary
RafflePage.tsxdefines a localSkeletoncomponent at the top of the file:The project already has
client/src/components/ui/Skeleton.tsx. Keeping a local copy silently diverges styles.What to do
Skeleton.tsxincomponents/ui/accepts aclassNameprop with the same semantics.RafflePage.tsxwith an import fromcomponents/ui/Skeleton.Acceptance criteria
client/src/pages/defines a localSkeletoncomponent.ui/Skeletonis used everywhere.