mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
Copy group event URL to clipboard
This commit is contained in:
@@ -1896,7 +1896,8 @@
|
|||||||
"created": "Created Date",
|
"created": "Created Date",
|
||||||
"description": "Description",
|
"description": "Description",
|
||||||
"export_to_calendar": "Export to Calendar",
|
"export_to_calendar": "Export to Calendar",
|
||||||
"download_ics": "Download .ics"
|
"download_ics": "Download .ics",
|
||||||
|
"copied_event_link": "Calendar event URL copied to clipboard"
|
||||||
},
|
},
|
||||||
"featured_events": "Featured Events"
|
"featured_events": "Featured Events"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -56,17 +56,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="isFollowing" @click="toggleEventFollow(event)" class="following-badge is-following">
|
<div class="badges">
|
||||||
<el-icon><Star /></el-icon>
|
<div @click="copyEventLink(event)" class="share-badge">
|
||||||
</div>
|
<el-icon><Share /></el-icon>
|
||||||
<div v-else @click="toggleEventFollow(event)" class="following-badge">
|
</div>
|
||||||
<el-icon><StarFilled /></el-icon>
|
<div v-if="isFollowing" @click="toggleEventFollow(event)" class="following-badge is-following">
|
||||||
|
<el-icon><Star /></el-icon>
|
||||||
|
</div>
|
||||||
|
<div v-else @click="toggleEventFollow(event)" class="following-badge">
|
||||||
|
<el-icon><StarFilled /></el-icon>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Calendar, Download, Star, StarFilled } from '@element-plus/icons-vue';
|
import { Calendar, Download, Share, Star, StarFilled } from '@element-plus/icons-vue';
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
@@ -175,6 +180,12 @@
|
|||||||
emit('update-following-calendar-data', args.json);
|
emit('update-following-calendar-data', args.json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function copyEventLink(event) {
|
||||||
|
const eventLink = `https://vrchat.com/home/group/${event.ownerId}/calendar/${event.id}`;
|
||||||
|
navigator.clipboard.writeText(eventLink);
|
||||||
|
toast.success(t('dialog.group_calendar.event_card.copied_event_link'));
|
||||||
|
}
|
||||||
|
|
||||||
const formatTimeRange = (startsAt, endsAt) =>
|
const formatTimeRange = (startsAt, endsAt) =>
|
||||||
`${formatDateFilter(startsAt, 'time')} - ${formatDateFilter(endsAt, 'time')}`;
|
`${formatDateFilter(startsAt, 'time')} - ${formatDateFilter(endsAt, 'time')}`;
|
||||||
|
|
||||||
@@ -231,28 +242,48 @@
|
|||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.event-card .following-badge {
|
.event-card .badges {
|
||||||
|
display: inline-flex;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -8px;
|
top: -8px;
|
||||||
right: -9px;
|
right: -9px;
|
||||||
width: 24px;
|
z-index: 10;
|
||||||
height: 24px;
|
font-size: 15px;
|
||||||
border-radius: 50%;
|
}
|
||||||
background-color: var(--el-text-color-regular);
|
|
||||||
color: var(--el-bg-color);
|
.event-card .badges .following-badge {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-size: 14px;
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
gap: 4px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: var(--el-text-color-regular);
|
||||||
|
color: var(--el-bg-color);
|
||||||
box-shadow: var(--el-box-shadow-lighter);
|
box-shadow: var(--el-box-shadow-lighter);
|
||||||
z-index: 10;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.event-card .following-badge.is-following {
|
.event-card .badges .following-badge.is-following {
|
||||||
background-color: var(--group-calendar-badge-following, var(--el-color-success));
|
background-color: var(--group-calendar-badge-following, var(--el-color-success));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.event-card .badges .share-badge {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
gap: 4px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: var(--el-text-color-regular);
|
||||||
|
color: var(--el-bg-color);
|
||||||
|
box-shadow: var(--el-box-shadow-lighter);
|
||||||
|
cursor: pointer;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.event-card .event-content {
|
.event-card .event-content {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user