summaryrefslogtreecommitdiff
path: root/packages/client/src/widgets/instance-cloud.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/client/src/widgets/instance-cloud.vue')
-rw-r--r--packages/client/src/widgets/instance-cloud.vue81
1 files changed, 0 insertions, 81 deletions
diff --git a/packages/client/src/widgets/instance-cloud.vue b/packages/client/src/widgets/instance-cloud.vue
deleted file mode 100644
index 4965616995..0000000000
--- a/packages/client/src/widgets/instance-cloud.vue
+++ /dev/null
@@ -1,81 +0,0 @@
-<template>
-<MkContainer :naked="widgetProps.transparent" :show-header="false" class="mkw-instance-cloud">
- <div class="">
- <MkTagCloud v-if="activeInstances">
- <li v-for="instance in activeInstances" :key="instance.id">
- <a @click.prevent="onInstanceClick(instance)">
- <img style="width: 32px;" :src="getInstanceIcon(instance)">
- </a>
- </li>
- </MkTagCloud>
- </div>
-</MkContainer>
-</template>
-
-<script lang="ts" setup>
-import { } from 'vue';
-import { useWidgetPropsManager, Widget, WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget';
-import { GetFormResultType } from '@/scripts/form';
-import MkContainer from '@/components/MkContainer.vue';
-import MkTagCloud from '@/components/MkTagCloud.vue';
-import * as os from '@/os';
-import { useInterval } from '@/scripts/use-interval';
-import { getProxiedImageUrlNullable } from '@/scripts/media-proxy';
-
-const name = 'instanceCloud';
-
-const widgetPropsDef = {
- transparent: {
- type: 'boolean' as const,
- default: false,
- },
-};
-
-type WidgetProps = GetFormResultType<typeof widgetPropsDef>;
-
-// 現時点ではvueの制限によりimportしたtypeをジェネリックに渡せない
-//const props = defineProps<WidgetComponentProps<WidgetProps>>();
-//const emit = defineEmits<WidgetComponentEmits<WidgetProps>>();
-const props = defineProps<{ widget?: Widget<WidgetProps>; }>();
-const emit = defineEmits<{ (ev: 'updateProps', props: WidgetProps); }>();
-
-const { widgetProps, configure } = useWidgetPropsManager(name,
- widgetPropsDef,
- props,
- emit,
-);
-
-let cloud = $ref<InstanceType<typeof MkTagCloud> | null>();
-let activeInstances = $shallowRef(null);
-
-function onInstanceClick(i) {
- os.pageWindow(`/instance-info/${i.host}`);
-}
-
-useInterval(() => {
- os.api('federation/instances', {
- sort: '+lastCommunicatedAt',
- limit: 25,
- }).then(res => {
- activeInstances = res;
- if (cloud) cloud.update();
- });
-}, 1000 * 60 * 3, {
- immediate: true,
- afterMounted: true,
-});
-
-function getInstanceIcon(instance): string {
- return getProxiedImageUrlNullable(instance.iconUrl, 'preview') ?? getProxiedImageUrlNullable(instance.faviconUrl, 'preview') ?? '/client-assets/dummy.png';
-}
-
-defineExpose<WidgetComponentExpose>({
- name,
- configure,
- id: props.widget ? props.widget.id : null,
-});
-</script>
-
-<style lang="scss" scoped>
-
-</style>