Skip to content

Commit fa0054b

Browse files
committed
feat(skeleton): skeleton component
1 parent fbe9884 commit fa0054b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1392
-654
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton></tiny-skeleton>
4+
</div>
5+
</template>
6+
7+
<script setup>
8+
import { Skeleton as TinySkeleton } from '@opentiny/vue'
9+
</script>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { expect, test } from '@playwright/test'
2+
3+
test('基本用法', async ({ page }) => {
4+
page.on('pageerror', (exception) => expect(exception).toBeNull())
5+
await page.goto('skeleton#basic')
6+
7+
const first = page.locator('.tiny-skeleton')
8+
const children = page.locator('.tiny-skeleton-item')
9+
const active = page.locator('.tiny-skeleton-item--active')
10+
11+
await expect(first).toHaveCount(1)
12+
await expect(children).toHaveCount(4)
13+
await expect(active).toHaveCount(4)
14+
})
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton></tiny-skeleton>
4+
</div>
5+
</template>
6+
7+
<script>
8+
import { Skeleton } from '@opentiny/vue'
9+
10+
export default {
11+
components: {
12+
TinySkeleton: Skeleton
13+
}
14+
}
15+
</script>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton avatar></tiny-skeleton>
4+
</div>
5+
</template>
6+
7+
<script setup>
8+
import { Skeleton as TinySkeleton } from '@opentiny/vue'
9+
</script>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { expect, test } from '@playwright/test'
2+
3+
test('段落显示左侧头像', async ({ page }) => {
4+
page.on('pageerror', (exception) => expect(exception).toBeNull())
5+
await page.goto('skeleton#complex-demo')
6+
7+
const first = page.locator('.tiny-skeleton')
8+
const avatar = page.locator('.tiny-skeleton__avatar')
9+
const medium = page.locator('.tiny-skeleton-item--medium')
10+
11+
await expect(first).toHaveCount(1)
12+
await expect(avatar).toHaveCount(1)
13+
await expect(medium).toHaveCount(1)
14+
})
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton avatar></tiny-skeleton>
4+
</div>
5+
</template>
6+
7+
<script>
8+
import { Skeleton } from '@opentiny/vue'
9+
10+
export default {
11+
components: {
12+
TinySkeleton: Skeleton
13+
}
14+
}
15+
</script>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton>
4+
<template #placeholder>
5+
<tiny-skeleton-item variant="image" style="width: 200px"></tiny-skeleton-item>
6+
<br /><br />
7+
<tiny-skeleton-item variant="circle" size="small"></tiny-skeleton-item>
8+
</template>
9+
</tiny-skeleton>
10+
</div>
11+
</template>
12+
13+
<script setup>
14+
import { Skeleton as TinySkeleton, SkeletonItem as TinySkeletonItem } from '@opentiny/vue'
15+
</script>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { expect, test } from '@playwright/test'
2+
3+
test('自定义排版', async ({ page }) => {
4+
page.on('pageerror', (exception) => expect(exception).toBeNull())
5+
await page.goto('skeleton#custom-layout')
6+
7+
const image = page.locator('.tiny-skeleton-item--image')
8+
const circle = page.locator('.tiny-skeleton-item--circle')
9+
10+
await expect(image).toHaveCount(1)
11+
await expect(circle).toHaveCount(1)
12+
await expect(circle).toHaveClass(/tiny-skeleton-item--small/)
13+
await expect(image).toHaveCSS('width', '200px')
14+
})
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton>
4+
<template #placeholder>
5+
<tiny-skeleton-item variant="image" style="width: 200px"></tiny-skeleton-item>
6+
<br /><br />
7+
<tiny-skeleton-item variant="circle" size="small"></tiny-skeleton-item>
8+
</template>
9+
</tiny-skeleton>
10+
</div>
11+
</template>
12+
13+
<script>
14+
import { Skeleton, SkeletonItem } from '@opentiny/vue'
15+
16+
export default {
17+
components: {
18+
TinySkeleton: Skeleton,
19+
TinySkeletonItem: SkeletonItem
20+
}
21+
}
22+
</script>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<template>
2+
<div>
3+
<tiny-skeleton :rows="5" :rows-width="['200px', '100px', '50px']"></tiny-skeleton>
4+
</div>
5+
</template>
6+
7+
<script setup>
8+
import { Skeleton as TinySkeleton } from '@opentiny/vue'
9+
</script>

0 commit comments

Comments
 (0)