Skip to content

Commit 17b86cc

Browse files
authored
Merge pull request #3089 from pyth-network/fix/skeleton
fix: skeleton fill
2 parents fe7d8d1 + bf22b39 commit 17b86cc

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

packages/component-library/src/Skeleton/index.module.scss

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
}
1212
}
1313

14-
.fullSkeleton {
15-
display: inline-block;
16-
}
17-
1814
.skeleton {
1915
border-radius: theme.border-radius("lg");
2016

17+
&[data-fill] {
18+
width: 100%;
19+
}
20+
2121
.skeletonInner {
2222
display: inline flow-root;
2323
width: calc(theme.spacing(1) * var(--skeleton-width));

packages/component-library/src/Skeleton/index.stories.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,14 @@ const meta = {
2828
export default meta;
2929

3030
export const Skeleton = {
31+
render: (args) => (
32+
<div style={{ width: "100vw", display: "flex", justifyContent: "center" }}>
33+
<SkeletonComponent {...args} />
34+
</div>
35+
),
3136
args: {
3237
label: "Loading",
33-
width: 20,
3438
fill: false,
39+
width: 20,
3540
},
3641
} satisfies StoryObj<typeof SkeletonComponent>;

packages/component-library/src/Skeleton/index.tsx

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,25 @@ type Props = Omit<ComponentProps<"span">, "children"> & {
1111
fill?: boolean | undefined;
1212
};
1313

14-
export const Skeleton = ({ className, label, width, fill, ...props }: Props) =>
15-
fill ? (
16-
<span className={clsx(styles.fullSkeleton, className)} {...props}>
14+
export const Skeleton = ({
15+
className,
16+
label,
17+
width,
18+
fill,
19+
...props
20+
}: Props) => (
21+
<span
22+
data-fill-width={width === undefined ? "" : undefined}
23+
{...(width &&
24+
!fill && { style: { "--skeleton-width": width } as CSSProperties })}
25+
data-fill={fill ? "" : undefined}
26+
className={clsx(styles.skeleton, className)}
27+
>
28+
<span className={clsx(styles.skeletonInner, className)} {...props}>
1729
<Label>{label ?? "Loading"}</Label>
1830
</span>
19-
) : (
20-
<span
21-
data-fill-width={width === undefined ? "" : undefined}
22-
{...(width && { style: { "--skeleton-width": width } as CSSProperties })}
23-
className={clsx(styles.skeleton, { [className ?? ""]: fill })}
24-
>
25-
<span className={clsx(styles.skeletonInner, className)} {...props}>
26-
<Label>{label ?? "Loading"}</Label>
27-
</span>
28-
</span>
29-
);
31+
</span>
32+
);
3033

3134
const Label = ({ children }: { children: string | undefined }) => (
3235
<span className={styles.skeletonLabel}>{children ?? "Loading"}</span>

0 commit comments

Comments
 (0)