Skip to content

Commit e9a133c

Browse files
committed
fix(client): fix Tweet component
1 parent 7fb209a commit e9a133c

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

packages/client/builtin/Tweet.vue

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,33 +20,47 @@ const props = defineProps<{
2020
const tweet = ref<HTMLElement | null>()
2121
2222
const vm = getCurrentInstance()!
23+
const loaded = ref(false)
2324
24-
function create() {
25+
async function create() {
2526
// @ts-ignore
26-
window?.twttr?.widgets?.createTweet(
27+
await window.twttr.widgets.createTweet(
2728
props.id.toString(),
2829
tweet.value,
2930
{
3031
theme: isDark.value ? 'dark' : 'light',
3132
conversation: props.conversation || 'none',
3233
},
3334
)
35+
loaded.value = true
3436
}
3537
36-
useScriptTag(
37-
'https://platform.twitter.com/widgets.js',
38-
() => {
39-
if (vm.isMounted)
40-
create()
41-
else
42-
onMounted(create, vm)
43-
},
44-
{ async: true },
45-
)
38+
// @ts-ignore
39+
if (window?.twttr?.widgets) {
40+
onMounted(create)
41+
}
42+
else {
43+
useScriptTag(
44+
'https://platform.twitter.com/widgets.js',
45+
() => {
46+
if (vm.isMounted)
47+
create()
48+
else
49+
onMounted(create, vm)
50+
},
51+
{ async: true },
52+
)
53+
}
4654
</script>
4755

4856
<template>
4957
<Transform :scale="scale || 1">
50-
<div ref="tweet"></div>
58+
<div ref="tweet">
59+
<div v-if="!loaded" class="w-30 h-30 my-10px bg-gray-400 bg-opacity-10 rounded-lg flex opacity-50">
60+
<div class="m-auto animate-pulse text-4xl">
61+
<carbon:logo-twitter />
62+
</div>
63+
</div>
64+
</div>
5165
</Transform>
5266
</template>

0 commit comments

Comments
 (0)