diff options
author | vnugent <public@vaughnnugent.com> | 2024-01-30 15:23:06 -0500 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-01-30 15:23:06 -0500 |
commit | 5abc489b9954111d66d1385aa62a3ea962fa0a55 (patch) | |
tree | b1715e5c5e6316f33e3e33fb55397d93200ab518 /front-end/src/views/Blog/index.vue | |
parent | e4dc63ded324c6e9678603296953bb1f7dea7569 (diff) |
merge upstream. Add dynamic client-side support for optional oauth2 and social login methods
Diffstat (limited to 'front-end/src/views/Blog/index.vue')
-rw-r--r-- | front-end/src/views/Blog/index.vue | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/front-end/src/views/Blog/index.vue b/front-end/src/views/Blog/index.vue index de435ec..af6ab88 100644 --- a/front-end/src/views/Blog/index.vue +++ b/front-end/src/views/Blog/index.vue @@ -1,3 +1,35 @@ +<script setup lang="ts"> +import { computed } from 'vue'; +import { useRouteQuery } from '@vueuse/router'; +import { TabGroup, TabList, Tab, TabPanels, TabPanel, Switch } from '@headlessui/vue' +import { defer, first } from 'lodash-es'; +import { useStore, SortType } from '../../store'; +import Channels from './components/Channels.vue'; +import Posts from './components/Posts.vue'; +import Content from './components/Content.vue'; + +//Protect page +const store = useStore() +store.setPageTitle('Blog Admin') + +const firstLetter = computed(() => first(store.userName)) +const tabIdQ = useRouteQuery<string>('tabid', '', { mode: 'push' }) + +//Map queries to their respective computed values +const tabId = computed(() => tabIdQ.value ? parseInt(tabIdQ.value) : 0); +const lastModified = computed({ + get: () => store.queryState.sort === SortType.ModifiedTime, + set: (value: boolean) => { + store.queryState.sort = value ? SortType.ModifiedTime : SortType.CreatedTime + } +}) + +const onTabChange = (id: number) => tabIdQ.value = id.toString(10) + +//Load channels on page load +defer(() => store.channels.refresh()); + +</script> <template> <div class="container mx-auto mt-10 mb-[10rem]"> <div id="blog-admin-template" class=""> @@ -107,40 +139,6 @@ </div> </template> -<script setup lang="ts"> -import { computed } from 'vue'; -import { useRouteQuery } from '@vueuse/router'; -import { TabGroup, TabList, Tab, TabPanels, TabPanel, Switch } from '@headlessui/vue' -import { defer, first } from 'lodash-es'; -import { useStore, SortType } from '../../store'; -import Channels from './components/Channels.vue'; -import Posts from './components/Posts.vue'; -import Content from './components/Content.vue'; - - -//Protect page -const store = useStore() -store.setPageTitle('Blog Admin') - -const firstLetter = computed(() => first(store.userName)) -const tabIdQ = useRouteQuery<string>('tabid', '', { mode: 'push' }) - -//Map queries to their respective computed values -const tabId = computed(() => tabIdQ.value ? parseInt(tabIdQ.value) : 0); -const lastModified = computed({ - get :() => store.queryState.sort === SortType.ModifiedTime, - set: (value:boolean) => { - store.queryState.sort = value ? SortType.ModifiedTime : SortType.CreatedTime - } -}) - -const onTabChange = (id:number) => tabIdQ.value = id.toString(10) - -//Load channels on page load -defer(() => store.channels.refresh()); - -</script> - <style lang="scss"> #blog-admin-template{ |