2021-04-15 11:44:58 +02:00
|
|
|
<template>
|
|
|
|
|
<BottomSheet ref="sheet" class="sticker-picker">
|
|
|
|
|
<v-tabs
|
|
|
|
|
v-model="currentStickerPack"
|
|
|
|
|
centered
|
|
|
|
|
class="tabs"
|
|
|
|
|
show-arrows
|
2025-05-08 11:52:39 +02:00
|
|
|
slider-color="primary"
|
2021-04-15 11:44:58 +02:00
|
|
|
>
|
2025-05-08 11:52:39 +02:00
|
|
|
<v-tab v-for="(pack,ipack) in packs" :key="'pack-' + ipack" :value="'pack-' + ipack">
|
2021-04-15 11:44:58 +02:00
|
|
|
{{ pack }}
|
|
|
|
|
</v-tab>
|
|
|
|
|
</v-tabs>
|
2025-05-08 11:52:39 +02:00
|
|
|
<v-tabs-window v-model="currentStickerPack">
|
|
|
|
|
<v-window-item v-for="(pack,ipack) in packs" :key="'pack-content-' + ipack" :value="'pack-' + ipack">
|
2025-05-09 10:17:59 +02:00
|
|
|
<v-card variant="flat">
|
2021-04-15 11:44:58 +02:00
|
|
|
<v-container fluid>
|
|
|
|
|
<v-row>
|
|
|
|
|
<v-col cols="2" v-for="sticker in stickersInPack(pack)" :key="pack + sticker.name">
|
|
|
|
|
<v-img @click="selectSticker(pack, sticker)" :src="sticker.image" contain />
|
|
|
|
|
</v-col>
|
|
|
|
|
</v-row>
|
|
|
|
|
</v-container>
|
|
|
|
|
</v-card>
|
2025-05-08 11:52:39 +02:00
|
|
|
</v-window-item>
|
|
|
|
|
</v-tabs-window>
|
2021-04-15 11:44:58 +02:00
|
|
|
</BottomSheet>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import BottomSheet from "./BottomSheet";
|
|
|
|
|
import stickers from '../plugins/stickers';
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
components: {
|
|
|
|
|
BottomSheet,
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
2025-05-08 11:52:39 +02:00
|
|
|
currentStickerPack: 'pack-0',
|
|
|
|
|
packs: [],
|
2021-04-15 11:44:58 +02:00
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
mounted() {},
|
|
|
|
|
methods: {
|
|
|
|
|
open() {
|
2025-05-08 11:52:39 +02:00
|
|
|
this.packs = stickers.getPacks();
|
2021-04-15 11:44:58 +02:00
|
|
|
this.$refs.sheet.open();
|
|
|
|
|
},
|
|
|
|
|
stickersInPack(pack) {
|
|
|
|
|
return stickers.stickersInPack(pack);
|
|
|
|
|
},
|
|
|
|
|
selectSticker(pack, sticker) {
|
|
|
|
|
this.$refs.sheet.close();
|
|
|
|
|
this.$emit('selectSticker', stickers.getStickerShortcode(pack, sticker));
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
2025-05-13 22:38:10 +02:00
|
|
|
@use "@/assets/css/chat.scss" as *;
|
2021-04-15 11:44:58 +02:00
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
2022-02-23 11:52:09 +00:00
|
|
|
.sticker-picker {
|
|
|
|
|
z-index: 10;
|
|
|
|
|
|
|
|
|
|
.tabs {
|
|
|
|
|
position: sticky;
|
|
|
|
|
top: 0px;
|
|
|
|
|
z-index: 1;
|
2025-05-08 11:52:39 +02:00
|
|
|
background: white;
|
2022-02-23 11:52:09 +00:00
|
|
|
}
|
|
|
|
|
}
|
2021-04-15 11:44:58 +02:00
|
|
|
</style>
|