likes
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {computed, onMounted, ref, watch, nextTick} from 'vue'
|
import {computed, nextTick, onMounted, ref, watch} from 'vue'
|
||||||
import {useRoute, useRouter} from 'vue-router'
|
import {useRoute, useRouter} from 'vue-router'
|
||||||
import {dataService} from '../services/dataService'
|
import {dataService} from '../services/dataService'
|
||||||
import {aiService} from '../services/aiService'
|
import {aiService} from '../services/aiService'
|
||||||
@@ -7,7 +7,6 @@ import Button from 'primevue/button'
|
|||||||
import Skeleton from 'primevue/skeleton'
|
import Skeleton from 'primevue/skeleton'
|
||||||
import Tag from 'primevue/tag'
|
import Tag from 'primevue/tag'
|
||||||
import Dialog from 'primevue/dialog'
|
import Dialog from 'primevue/dialog'
|
||||||
import Textarea from 'primevue/textarea'
|
|
||||||
import Checkbox from 'primevue/checkbox'
|
import Checkbox from 'primevue/checkbox'
|
||||||
import ProgressBar from 'primevue/progressbar'
|
import ProgressBar from 'primevue/progressbar'
|
||||||
import Message from 'primevue/message'
|
import Message from 'primevue/message'
|
||||||
@@ -19,8 +18,6 @@ import Tab from 'primevue/tab'
|
|||||||
import TabPanels from 'primevue/tabpanels'
|
import TabPanels from 'primevue/tabpanels'
|
||||||
import TabPanel from 'primevue/tabpanel'
|
import TabPanel from 'primevue/tabpanel'
|
||||||
import Paginator from 'primevue/paginator'
|
import Paginator from 'primevue/paginator'
|
||||||
import MultiSelect from 'primevue/multiselect'
|
|
||||||
import Dropdown from 'primevue/dropdown'
|
|
||||||
|
|
||||||
import GenerationPreviewModal from '../components/GenerationPreviewModal.vue'
|
import GenerationPreviewModal from '../components/GenerationPreviewModal.vue'
|
||||||
|
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ const previousPrompt = ref('')
|
|||||||
let _savedEnvironmentId = null
|
let _savedEnvironmentId = null
|
||||||
|
|
||||||
// NSFW Toggle
|
// NSFW Toggle
|
||||||
const showNsfwGlobal = ref(localStorage.getItem('show_nsfw_global') === 'true')
|
const showNsfwGlobal = ref(false)
|
||||||
|
|
||||||
watch(showNsfwGlobal, (val) => {
|
watch(showNsfwGlobal, (val) => {
|
||||||
localStorage.setItem('show_nsfw_global', val)
|
localStorage.setItem('show_nsfw_global', val)
|
||||||
@@ -555,6 +555,10 @@ const loadMoreHistory = async () => {
|
|||||||
|
|
||||||
// --- Initial Load ---
|
// --- Initial Load ---
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
// Reset NSFW on page load
|
||||||
|
showNsfwGlobal.value = false
|
||||||
|
localStorage.removeItem('show_nsfw_global')
|
||||||
|
|
||||||
loadData().then(() => {
|
loadData().then(() => {
|
||||||
// slight delay to allow DOM render
|
// slight delay to allow DOM render
|
||||||
setTimeout(setupInfiniteScroll, 500)
|
setTimeout(setupInfiniteScroll, 500)
|
||||||
@@ -897,6 +901,13 @@ const confirmAddToAlbum = async () => {
|
|||||||
class="!w-7 !h-7 !p-0"
|
class="!w-7 !h-7 !p-0"
|
||||||
:class="onlyLiked ? '!text-pink-500 !bg-pink-500/10' : '!text-slate-400 hover:!bg-white/10'"
|
:class="onlyLiked ? '!text-pink-500 !bg-pink-500/10' : '!text-slate-400 hover:!bg-white/10'"
|
||||||
v-tooltip.bottom="onlyLiked ? 'Show all' : 'Show liked only'" />
|
v-tooltip.bottom="onlyLiked ? 'Show all' : 'Show liked only'" />
|
||||||
|
|
||||||
|
<Button :icon="showNsfwGlobal ? 'pi pi-eye' : 'pi pi-eye-slash'"
|
||||||
|
@click="showNsfwGlobal = !showNsfwGlobal" rounded text
|
||||||
|
class="!w-7 !h-7 !p-0"
|
||||||
|
:class="showNsfwGlobal ? '!text-red-400 !bg-red-500/10' : '!text-slate-400 hover:!bg-white/10'"
|
||||||
|
v-tooltip.bottom="showNsfwGlobal ? 'Hide NSFW' : 'Show NSFW'" />
|
||||||
|
|
||||||
<Button icon="pi pi-refresh" @click="refreshHistory" rounded text
|
<Button icon="pi pi-refresh" @click="refreshHistory" rounded text
|
||||||
class="!text-slate-400 hover:!bg-white/10 !w-7 !h-7 !p-0 md:hidden" />
|
class="!text-slate-400 hover:!bg-white/10 !w-7 !h-7 !p-0 md:hidden" />
|
||||||
<Button :icon="isSelectMode ? 'pi pi-times' : 'pi pi-check-square'" @click="toggleSelectMode"
|
<Button :icon="isSelectMode ? 'pi pi-times' : 'pi pi-check-square'" @click="toggleSelectMode"
|
||||||
@@ -1199,14 +1210,6 @@ const confirmAddToAlbum = async () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- NSFW Toggle -->
|
|
||||||
<div class="flex flex-col gap-2 bg-slate-800/50 p-3 rounded-xl border border-white/5">
|
|
||||||
<div class="flex items-center justify-between">
|
|
||||||
<label class="text-xs text-slate-300 cursor-pointer">Show NSFW</label>
|
|
||||||
<InputSwitch v-model="showNsfwGlobal" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-auto">
|
<div class="mt-auto">
|
||||||
<Button :label="isSubmitting ? 'Starting...' : 'Generate'"
|
<Button :label="isSubmitting ? 'Starting...' : 'Generate'"
|
||||||
:icon="isSubmitting ? 'pi pi-spin pi-spinner' : 'pi pi-sparkles'"
|
:icon="isSubmitting ? 'pi pi-spin pi-spinner' : 'pi pi-sparkles'"
|
||||||
|
|||||||
Reference in New Issue
Block a user