diff --git a/apps/web/app/components/admin/SponsorItem.vue b/apps/web/app/components/admin/SponsorItem.vue
index 35a0b191..006b5a03 100644
--- a/apps/web/app/components/admin/SponsorItem.vue
+++ b/apps/web/app/components/admin/SponsorItem.vue
@@ -20,6 +20,7 @@ const newSponsor = ref({
name: props.sponsor?.name ?? '',
detail_page_id: props.sponsor?.detail_page_id ?? '',
image_url: props.sponsor?.image_url ?? '',
+ share_image_url: props.sponsor?.share_image_url ?? '',
description_ja: props.sponsor?.description_ja ?? '',
description_en: props.sponsor?.description_en ?? '',
link_url: props.sponsor?.link_url ?? '',
@@ -48,6 +49,18 @@ const checkFiles = async (files: File[]) => {
newSponsor.value.image_url = getFullAvatarUrl(filePath)
}
+const checkShareFiles = async (files: File[]) => {
+ if (files.length === 0) return
+
+ const file = files[0]
+ // const filename = file.name
+ const fileExt = file.name.split('.').pop()
+ const filePath = `/${Math.random()}.${fileExt}`
+
+ uploadAvatar(filePath, file)
+
+ newSponsor.value.share_image_url = getFullAvatarUrl(filePath)
+}
const updateDescriptionJa = (e: any) => {
newSponsor.value.description_ja = e.target.value
}
@@ -99,9 +112,23 @@ const onSubmit = () => {
height="60"
decoding="async"
/>
-
{
name |
detail_page_id |
image_url |
+ share_image_url |
description |
link_url |
speaker_id |
@@ -47,6 +48,19 @@ const handleDialog = (id?: string) => {
No image
+
+
+
+ No share image
+
+ |
{{ sponsor.description_ja }}
{{ sponsor.description_en }}
diff --git a/apps/web/app/content/ja/namecard_annotation_order_number.md b/apps/web/app/content/ja/namecard_annotation_order_number.md
index cd5bca1f..499d3a95 100644
--- a/apps/web/app/content/ja/namecard_annotation_order_number.md
+++ b/apps/web/app/content/ja/namecard_annotation_order_number.md
@@ -1 +1 @@
-※注文番号は、チケット購入時にPeatixから送信されるメール内に含まれる[領収データ](https://help-attendee.peatix.com/ja-JP/support/solutions/articles/44001821741)から確認できます。
+※注文番号は、チケット購入時に Peatix から送信されるメール内に含まれる[領収データ](https://help-attendee.peatix.com/ja-JP/support/solutions/articles/44001821741)から確認できます。
diff --git a/apps/web/app/pages/namecard/[id]/edit/complete.vue b/apps/web/app/pages/namecard/[id]/edit/complete.vue
index c1cda55e..eb4fbd74 100644
--- a/apps/web/app/pages/namecard/[id]/edit/complete.vue
+++ b/apps/web/app/pages/namecard/[id]/edit/complete.vue
@@ -44,13 +44,13 @@ const { authUserId, statusKey, attendee } = await useNamecard()
can-hover
class="sns-button"
/>
-
-
+ class="sns-button"
+ />
diff --git a/apps/web/app/pages/namecard/[id]/share.vue b/apps/web/app/pages/namecard/[id]/share.vue
index c9c04c11..97ebff2c 100644
--- a/apps/web/app/pages/namecard/[id]/share.vue
+++ b/apps/web/app/pages/namecard/[id]/share.vue
@@ -17,6 +17,15 @@ if (!attendee) {
const currentLocale = useLocaleCurrent().locale
+function copyUrl() {
+ const element = document.createElement('input')
+ element.value = `https://vuefes.jp/2024/namecard/${id}/share`
+ document.body.appendChild(element)
+ element.select()
+ document.execCommand('copy')
+ document.body.removeChild(element)
+}
+
const officialSiteUrl = computed(() => {
return currentLocale.value === 'ja' ? linkUrl : `${linkUrl}/en`
})
@@ -50,11 +59,36 @@ useHead({
>{{ t('official_site') }}
-
- - x
- - facebook
- - copy
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ コピーしました!
+
+
@@ -72,7 +106,8 @@ useHead({
max-width: 960px;
margin: 0 auto calc(var(--unit) * 7.5);
}
-.invite-comment {
+.invite-comment,
+.share-session {
margin: 0 auto calc(var(--unit) * 2.5);
}
.link-button {
@@ -86,4 +121,36 @@ useHead({
border-radius: var(--height-button);
margin: 0 auto calc(var(--unit) * 7.5);
}
+.sns-list {
+ display: flex;
+ justify-content: center;
+ gap: calc(var(--unit) * 2.5);
+ padding: 0;
+ margin: 0;
+}
+.sns-list li {
+ padding: 0;
+ margin: 0;
+}
+.copycode {
+ position: relative;
+ display: inline-block;
+}
+.copycode span {
+ opacity: 0;
+ position: absolute;
+ top: 0px;
+ right: -5px;
+ color: #fff;
+ background: rgba(0, 0, 0, 0.5);
+ padding: 2px 5px;
+ transform: translate(100%);
+}
+.copycode button:focus + span {
+ animation: fade-out 2s ease-in;
+}
+@keyframes fade-out {
+ 0% { visibility: visible; opacity: 1; }
+ 100% { visibility: hidden; opacity: 0; }
+}
diff --git a/apps/web/app/pages/sessions/[id]/share.vue b/apps/web/app/pages/sessions/[id]/share.vue
index 11645e02..3a5bf669 100644
--- a/apps/web/app/pages/sessions/[id]/share.vue
+++ b/apps/web/app/pages/sessions/[id]/share.vue
@@ -1,2 +1,164 @@
-
-
+
+
+
+
+
+
+ {{ $t('official_site') }}
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ コピーしました!
+
+
+
+
+
+
+
diff --git a/apps/web/app/pages/sponsors/[id]/share.vue b/apps/web/app/pages/sponsors/[id]/share.vue
index 11645e02..6e909a84 100644
--- a/apps/web/app/pages/sponsors/[id]/share.vue
+++ b/apps/web/app/pages/sponsors/[id]/share.vue
@@ -1,2 +1,164 @@
-
-
+
+
+
+
+
+
+ {{ $t('official_site') }}
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ コピーしました!
+
+
+
+
+
+
+
diff --git a/apps/web/app/types/generated/supabase.ts b/apps/web/app/types/generated/supabase.ts
index d882350e..16be4c84 100644
--- a/apps/web/app/types/generated/supabase.ts
+++ b/apps/web/app/types/generated/supabase.ts
@@ -262,6 +262,7 @@ export type Database = {
is_open: boolean
link_url: string | null
name: string
+ share_image_url: string | null
speaker_id: string | null
tag: string[] | null
updated_at: string
@@ -277,6 +278,7 @@ export type Database = {
is_open: boolean
link_url?: string | null
name: string
+ share_image_url?: string | null
speaker_id?: string | null
tag?: string[] | null
updated_at?: string
@@ -292,6 +294,7 @@ export type Database = {
is_open?: boolean
link_url?: string | null
name?: string
+ share_image_url?: string | null
speaker_id?: string | null
tag?: string[] | null
updated_at?: string
diff --git a/packages/model/lib/icon.ts b/packages/model/lib/icon.ts
index 241701c6..3e264833 100644
--- a/packages/model/lib/icon.ts
+++ b/packages/model/lib/icon.ts
@@ -2,7 +2,7 @@ export type IconName =
| 'x'
| 'x24'
| 'x40'
- | 'Facebook40'
+ | 'Facebook'
| 'note'
| 'YouTube'
| 'GitHub'
diff --git a/packages/model/lib/sponsor.ts b/packages/model/lib/sponsor.ts
index 5275973e..f99f9c5c 100644
--- a/packages/model/lib/sponsor.ts
+++ b/packages/model/lib/sponsor.ts
@@ -33,6 +33,7 @@ export type Sponsor = {
description_en: string
speaker_id?: string
image_url: string
+ share_image_url: string
tag: Array
link_url: string
is_open: boolean
diff --git a/packages/ui/assets/icon/github_32_icon.svg b/packages/ui/assets/icon/github_32_icon.svg
index 6a078cda..19938854 100644
--- a/packages/ui/assets/icon/github_32_icon.svg
+++ b/packages/ui/assets/icon/github_32_icon.svg
@@ -1,11 +1,4 @@
- |