summaryrefslogtreecommitdiff
path: root/packages/frontend-embed/src/components/EmMediaBanner.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend-embed/src/components/EmMediaBanner.vue')
-rw-r--r--packages/frontend-embed/src/components/EmMediaBanner.vue55
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/frontend-embed/src/components/EmMediaBanner.vue b/packages/frontend-embed/src/components/EmMediaBanner.vue
new file mode 100644
index 0000000000..435da238a4
--- /dev/null
+++ b/packages/frontend-embed/src/components/EmMediaBanner.vue
@@ -0,0 +1,55 @@
+<!--
+SPDX-FileCopyrightText: syuilo and misskey-project
+SPDX-License-Identifier: AGPL-3.0-only
+-->
+
+<template>
+<a :href="href" target="_blank" :class="$style.root">
+ <div :class="$style.label">
+ <template v-if="media.type.startsWith('audio')"><i class="ti ti-music"></i> {{ i18n.ts.audio }}</template>
+ <template v-else><i class="ti ti-file"></i> {{ i18n.ts.file }}</template>
+ </div>
+ <div :class="$style.go">
+ <i class="ti ti-chevron-right"></i>
+ </div>
+</a>
+</template>
+
+<script setup lang="ts">
+import * as Misskey from 'misskey-js';
+import { i18n } from '@/i18n.js';
+
+defineProps<{
+ media: Misskey.entities.DriveFile;
+ href: string;
+}>();
+</script>
+
+<style lang="scss" module>
+.root {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: var(--margin);
+ margin-top: 4px;
+ border: 1px solid var(--inputBorder);
+ border-radius: var(--radius);
+ background-color: var(--panel);
+ transition: background-color .1s, border-color .1s;
+
+ &:hover {
+ text-decoration: none;
+ border-color: var(--inputBorderHover);
+ background-color: var(--buttonHoverBg);
+ }
+}
+
+.label {
+ font-size: .9em;
+}
+
+.go {
+ margin-left: auto;
+}
+</style>