parent
585a5f71c8
commit
f3345dd0b7
|
@ -209,6 +209,9 @@ export default defineComponent({
|
||||||
|
|
||||||
// Register navigation items on config change
|
// Register navigation items on config change
|
||||||
subscribe(this.configEventName, this.refreshNav);
|
subscribe(this.configEventName, this.refreshNav);
|
||||||
|
|
||||||
|
// Register global functions
|
||||||
|
globalThis.showSettings = () => this.showSettings();
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="hlist">
|
<div class="hlist hide-scrollbar">
|
||||||
<div class="item" v-for="item of clusters" :key="item.cluster_id">
|
<div class="item" v-for="item of clusters" :key="item.cluster_id">
|
||||||
<Cluster :data="item" :link="true" />
|
<Cluster :data="item" :link="true" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -77,12 +77,6 @@ export default defineComponent({
|
||||||
aspect-ratio: 1;
|
aspect-ratio: 1;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide scrollbars
|
|
||||||
&::-webkit-scrollbar {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
scrollbar-width: none;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="explore-outer">
|
<div class="explore-outer hide-scrollbar">
|
||||||
<ClusterHList v-if="recognize.length" :title="t('memories', 'Recognize')" link="/recognize" :clusters="recognize" />
|
<ClusterHList v-if="recognize.length" :title="t('memories', 'Recognize')" link="/recognize" :clusters="recognize" />
|
||||||
<ClusterHList
|
<ClusterHList
|
||||||
v-if="facerecognition.length"
|
v-if="facerecognition.length"
|
||||||
|
@ -17,6 +17,7 @@
|
||||||
:ariaLabel="category.name"
|
:ariaLabel="category.name"
|
||||||
:key="category.name"
|
:key="category.name"
|
||||||
:to="category.link"
|
:to="category.link"
|
||||||
|
@click="category.click?.()"
|
||||||
type="secondary"
|
type="secondary"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
@ -40,6 +41,8 @@ import StarIcon from 'vue-material-design-icons/Star.vue';
|
||||||
import VideoIcon from 'vue-material-design-icons/PlayCircle.vue';
|
import VideoIcon from 'vue-material-design-icons/PlayCircle.vue';
|
||||||
import ArchiveIcon from 'vue-material-design-icons/PackageDown.vue';
|
import ArchiveIcon from 'vue-material-design-icons/PackageDown.vue';
|
||||||
import CalendarIcon from 'vue-material-design-icons/Calendar.vue';
|
import CalendarIcon from 'vue-material-design-icons/Calendar.vue';
|
||||||
|
import MapIcon from 'vue-material-design-icons/Map.vue';
|
||||||
|
import CogIcon from 'vue-material-design-icons/Cog.vue';
|
||||||
|
|
||||||
import type { ICluster, IConfig } from '../types';
|
import type { ICluster, IConfig } from '../types';
|
||||||
import { API } from '../services/API';
|
import { API } from '../services/API';
|
||||||
|
@ -76,7 +79,23 @@ export default defineComponent({
|
||||||
icon: CalendarIcon,
|
icon: CalendarIcon,
|
||||||
link: '/thisday',
|
link: '/thisday',
|
||||||
},
|
},
|
||||||
],
|
{
|
||||||
|
name: t('memories', 'Map'),
|
||||||
|
icon: MapIcon,
|
||||||
|
link: '/map',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: t('memories', 'Settings'),
|
||||||
|
icon: CogIcon,
|
||||||
|
link: undefined,
|
||||||
|
click: globalThis.showSettings,
|
||||||
|
},
|
||||||
|
] as {
|
||||||
|
name: string;
|
||||||
|
icon: any;
|
||||||
|
link?: string;
|
||||||
|
click?: () => void;
|
||||||
|
}[],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
|
@ -131,6 +150,9 @@ export default defineComponent({
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.explore-outer {
|
.explore-outer {
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
> .link-list {
|
> .link-list {
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
|
|
||||||
|
|
|
@ -177,6 +177,7 @@ export default defineComponent({
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
> div {
|
> div {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
|
@ -30,6 +30,7 @@ declare global {
|
||||||
var editMetadata: (photos: IPhoto[], sections?: number[]) => void;
|
var editMetadata: (photos: IPhoto[], sections?: number[]) => void;
|
||||||
var sharePhoto: (photo: IPhoto) => void;
|
var sharePhoto: (photo: IPhoto) => void;
|
||||||
var shareNodeLink: (path: string, immediate?: boolean) => Promise<void>;
|
var shareNodeLink: (path: string, immediate?: boolean) => Promise<void>;
|
||||||
|
var showSettings: () => void;
|
||||||
|
|
||||||
var mSidebar: {
|
var mSidebar: {
|
||||||
open: (fileid: number, filename?: string, forceNative?: boolean) => void;
|
open: (fileid: number, filename?: string, forceNative?: boolean) => void;
|
||||||
|
|
Loading…
Reference in New Issue