mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-08-28 19:48:01 +08:00
* feat: add user send mail client * fix: align user mail navigation * fix: shorten address credential action * test: cover user mail ownership boundaries * fix: address user mail review feedback * fix: disambiguate user mail e2e heading * fix: minimize shared sent box changes * refactor: isolate user send mail page * refactor: reuse bound address lookup * fix: clarify user sent box naming * refactor: decouple user send API from roles * fix: align user send mail behavior * fix: align user send role and rate limits * test: isolate user send rate limits * test: initialize rate limit worker database * refactor: simplify user send rate limit * refactor: inline user send rate limit path * refactor: simplify user send limiter key * refactor: keep existing rate limit behavior * style: simplify user send rate limit condition * style: group user send rate limit condition * fix: bind user role token to account * fix: keep user sender selection available
47 lines
1.7 KiB
Vue
47 lines
1.7 KiB
Vue
<script setup>
|
|
import { useScopedI18n } from '@/i18n/app'
|
|
|
|
import { useGlobalState } from '../store'
|
|
|
|
import AddressMangement from './user/AddressManagement.vue';
|
|
import UserSettingsPage from './user/UserSettings.vue';
|
|
import UserBar from './user/UserBar.vue';
|
|
import BindAddress from './user/BindAddress.vue';
|
|
import UserMailBox from './user/UserMailBox.vue';
|
|
import UserSendBox from './user/UserSendBox.vue';
|
|
|
|
const {
|
|
userTab, globalTabplacement, userSettings, openSettings
|
|
} = useGlobalState()
|
|
|
|
const { t } = useScopedI18n('views.User')
|
|
const { t: userMailT } = useScopedI18n('views.user.UserSendBox')
|
|
|
|
</script>
|
|
|
|
<template>
|
|
<div>
|
|
<UserBar />
|
|
<n-tabs v-if="userSettings.user_email" type="card" v-model:value="userTab" :placement="globalTabplacement">
|
|
<n-tab-pane name="address_management" :tab="t('address_management')">
|
|
<AddressMangement />
|
|
</n-tab-pane>
|
|
<n-tab-pane name="user_mail_box_tab" :tab="t('user_mail_box_tab')">
|
|
<UserMailBox />
|
|
</n-tab-pane>
|
|
<n-tab-pane v-if="openSettings.enableSendMail" name="user_sendbox" :tab="userMailT('sendbox')">
|
|
<UserSendBox mode="sendbox" />
|
|
</n-tab-pane>
|
|
<n-tab-pane v-if="openSettings.enableSendMail" name="user_send_mail" :tab="t('send_mail')">
|
|
<UserSendBox mode="send_mail" @sent="userTab = 'user_sendbox'" />
|
|
</n-tab-pane>
|
|
<n-tab-pane name="user_settings" :tab="t('user_settings')">
|
|
<UserSettingsPage />
|
|
</n-tab-pane>
|
|
<n-tab-pane name="bind_address" :tab="t('bind_address')">
|
|
<BindAddress />
|
|
</n-tab-pane>
|
|
</n-tabs>
|
|
</div>
|
|
</template>
|