You've already forked AstralRinth
forked from didirus/AstralRinth
* adjust existing sign-in flow * test fetching of oauth client * allow for apiversion override * getAuthUrl refactor * Adjust auth to accept complex url redirections * introduce scopes * accept oauth flow * rename login/oauth to authorize * conform to labrinth spec and oauth2 spec * use cute icons for scope items * applications pages * Modal for copy client secret on creation * rip out old state * add authorizations * add flow error state and implement feedback * implement error notifications on error * Client secret modal flow aligned with PAT copy * Authorized scopes now aligned with Authorize screen * Fix spelling and capitalization * change redirect uris to include the input field * refactor 2fa flow to be more stable * visual adjustments for authorizations * Fix empty field submission bug * Add file upload for application icon * Change shape of editing/create application * replace icon with Avatar component * Refactor authorization card styling * UI feedback * clean up spacing, styling * Create a "Developer" section of user settings * Fix spacing and scope access * app description and url implementations * clean up imports * Update authorization endpoint * Update placeholder URL in applications.vue * Remove app information from authorization page * Remove max scopes from application settings * Fix import statement and update label styles * Replace useless headers * Update pages/auth/authorize.vue Co-authored-by: Calum H. <contact@mineblock11.dev> * Update pages/auth/authorize.vue Co-authored-by: Calum H. <contact@mineblock11.dev> * Finish PR --------- Co-authored-by: Calum H. <contact@mineblock11.dev> Co-authored-by: Jai A <jaiagr+gpg@pm.me>
70 lines
2.4 KiB
Vue
70 lines
2.4 KiB
Vue
<template>
|
|
<div class="normal-page">
|
|
<div class="normal-page__sidebar">
|
|
<aside class="universal-card">
|
|
<h1>Settings</h1>
|
|
<NavStack>
|
|
<NavStackItem link="/settings" label="Appearance">
|
|
<PaintbrushIcon />
|
|
</NavStackItem>
|
|
<NavStackItem v-if="isStaging" link="/settings/language" label="Language">
|
|
<LanguagesIcon />
|
|
</NavStackItem>
|
|
<template v-if="auth.user">
|
|
<h3>User settings</h3>
|
|
<NavStackItem link="/settings/account" label="Account">
|
|
<UserIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/settings/authorizations" label="Authorizations">
|
|
<UsersIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/settings/sessions" :label="formatMessage(messages.sessionsTitle)">
|
|
<ShieldIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/settings/monetization" label="Monetization">
|
|
<CurrencyIcon />
|
|
</NavStackItem>
|
|
</template>
|
|
<template v-if="auth.user">
|
|
<h3>Developer Settings</h3>
|
|
<NavStackItem link="/settings/pats" label="PATs">
|
|
<KeyIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/settings/applications" label="Applications">
|
|
<ServerIcon />
|
|
</NavStackItem>
|
|
</template>
|
|
</NavStack>
|
|
</aside>
|
|
</div>
|
|
<div class="normal-page__content">
|
|
<NuxtPage :route="route" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script setup>
|
|
import { UsersIcon, ServerIcon } from 'omorphia'
|
|
import NavStack from '~/components/ui/NavStack.vue'
|
|
import NavStackItem from '~/components/ui/NavStackItem.vue'
|
|
|
|
import PaintbrushIcon from '~/assets/images/utils/paintbrush.svg'
|
|
import UserIcon from '~/assets/images/utils/user.svg'
|
|
import CurrencyIcon from '~/assets/images/utils/currency.svg'
|
|
import ShieldIcon from '~/assets/images/utils/shield.svg'
|
|
import KeyIcon from '~/assets/images/utils/key.svg'
|
|
import LanguagesIcon from '~/assets/images/utils/languages.svg'
|
|
|
|
const { formatMessage } = useVIntl()
|
|
|
|
const messages = defineMessages({
|
|
sessionsTitle: {
|
|
id: 'settings.sessions.title',
|
|
defaultMessage: 'Sessions',
|
|
},
|
|
})
|
|
|
|
const route = useRoute()
|
|
const auth = await useAuth()
|
|
const isStaging = useRuntimeConfig().public.siteUrl !== 'https://modrinth.com'
|
|
</script>
|