多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.6 KiB

<script setup lang="ts">
const scriptTag = ref()
const timelineStatus = reactive({
isLoaded: false,
isError: false,
})
const handleIframeLoad = () => {
setTimeout(() => {
timelineStatus.isLoaded = true
}, 2000)
}
const triggerReload = () => {
timelineStatus.isLoaded = false
timelineStatus.isError = false
nextTick(() => {
scriptTag.value.src = 'https://platform.twitter.com/widgets.js'
})
}
onMounted(() => {
scriptTag.value.src = 'https://platform.twitter.com/widgets.js'
})
const handleError = () => {
timelineStatus.isLoaded = true
timelineStatus.isError = true
}
</script>
<template>
<div
ref="scrollContainer"
:style="{
height: 'calc(100dvh - var(--toolbar-height) - 3.25rem)',
}"
class="overflow-y-auto nc-scrollbar-md w-full"
>
<div v-if="!timelineStatus.isLoaded" class="flex items-center justify-center h-full w-full">
<GeneralLoader size="xlarge" />
</div>
<div v-else-if="timelineStatus.isError" class="h-full flex justify-center items-center">
<FeedError page="twitter" @reload="triggerReload" />
</div>
<div class="mx-auto flex flex-col my-6 items-center">
<div style="min-width: 650px">
<a data-chrome="nofooter" class="twitter-timeline" href="https://twitter.com/nocodb?ref_src=twsrc%5Etfw"></a>
<Script
v-if="!timelineStatus.isError"
ref="scriptTag"
async
charset="utf-8"
@load="handleIframeLoad"
@error="handleError"
></Script>
</div>
</div>
</div>
</template>
<style scoped lang="scss"></style>