feat(v4): Auto-navigate to first menu item on group menu open(#10350)
Ensures users are seamlessly directed to the first available menu item upon opening a group, improving UX by reducing unnecessary clicks. This change enhances navigation flow within groups. Co-authored-by: Pranav <pranavrajs@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { computed, watch, ref } from 'vue';
|
import { computed, watch, ref } from 'vue';
|
||||||
import { useSidebarContext } from './provider';
|
import { useSidebarContext } from './provider';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
import Policy from 'dashboard/components/policy.vue';
|
import Policy from 'dashboard/components/policy.vue';
|
||||||
import SidebarGroupHeader from './SidebarGroupHeader.vue';
|
import SidebarGroupHeader from './SidebarGroupHeader.vue';
|
||||||
import SidebarGroupLeaf from './SidebarGroupLeaf.vue';
|
import SidebarGroupLeaf from './SidebarGroupLeaf.vue';
|
||||||
@@ -41,7 +41,7 @@ const navigableChildren = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
const isExpanded = computed(() => expandedItem.value === props.name);
|
const isExpanded = computed(() => expandedItem.value === props.name);
|
||||||
const isExpandable = computed(() => props.children);
|
const isExpandable = computed(() => props.children);
|
||||||
const hasChildren = computed(
|
const hasChildren = computed(
|
||||||
@@ -53,10 +53,7 @@ const accessibleItems = computed(() => {
|
|||||||
return props.children.filter(child => isAllowed(child.to));
|
return props.children.filter(child => isAllowed(child.to));
|
||||||
});
|
});
|
||||||
|
|
||||||
const hasAccessibleItems = computed(() => {
|
const hasAccessibleChildren = computed(() => {
|
||||||
// default true so that rendering is not blocked
|
|
||||||
if (!hasChildren.value) return true;
|
|
||||||
|
|
||||||
return accessibleItems.value.length > 0;
|
return accessibleItems.value.length > 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -93,6 +90,19 @@ const hasActiveChild = computed(() => {
|
|||||||
return activeChild.value !== undefined;
|
return activeChild.value !== undefined;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const toggleTrigger = () => {
|
||||||
|
if (
|
||||||
|
hasAccessibleChildren.value &&
|
||||||
|
!isExpanded.value &&
|
||||||
|
!hasActiveChild.value
|
||||||
|
) {
|
||||||
|
// if not already expanded, navigate to the first child
|
||||||
|
const firstItem = accessibleItems.value[0];
|
||||||
|
router.push(firstItem.to);
|
||||||
|
}
|
||||||
|
setExpandedItem(props.name);
|
||||||
|
};
|
||||||
|
|
||||||
watch(expandedItem, locateLastChild, {
|
watch(expandedItem, locateLastChild, {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
});
|
});
|
||||||
@@ -101,7 +111,7 @@ watch(expandedItem, locateLastChild, {
|
|||||||
<!-- eslint-disable-next-line vue/no-root-v-if -->
|
<!-- eslint-disable-next-line vue/no-root-v-if -->
|
||||||
<template>
|
<template>
|
||||||
<Policy
|
<Policy
|
||||||
v-if="hasAccessibleItems"
|
v-if="!hasChildren || hasAccessibleChildren"
|
||||||
:permissions="resolvePermissions(to)"
|
:permissions="resolvePermissions(to)"
|
||||||
:feature-flag="resolveFeatureFlag(to)"
|
:feature-flag="resolveFeatureFlag(to)"
|
||||||
as="li"
|
as="li"
|
||||||
@@ -116,7 +126,7 @@ watch(expandedItem, locateLastChild, {
|
|||||||
:has-active-child="hasActiveChild"
|
:has-active-child="hasActiveChild"
|
||||||
:expandable="hasChildren"
|
:expandable="hasChildren"
|
||||||
:is-expanded="isExpanded"
|
:is-expanded="isExpanded"
|
||||||
@toggle="setExpandedItem(name)"
|
@toggle="toggleTrigger"
|
||||||
/>
|
/>
|
||||||
<ul
|
<ul
|
||||||
v-if="hasChildren"
|
v-if="hasChildren"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
CONTACT_PERMISSIONS,
|
CONTACT_PERMISSIONS,
|
||||||
} from 'dashboard/constants/permissions.js';
|
} from 'dashboard/constants/permissions.js';
|
||||||
|
|
||||||
const SearchView = () => import('./components/SearchView.vue');
|
import SearchView from './components/SearchView.vue';
|
||||||
|
|
||||||
export const routes = [
|
export const routes = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* eslint arrow-body-style: 0 */
|
/* eslint arrow-body-style: 0 */
|
||||||
import { frontendURL } from '../../../helper/URLHelper';
|
import { frontendURL } from '../../../helper/URLHelper';
|
||||||
const ContactsView = () => import('./components/ContactsView.vue');
|
import ContactsView from './components/ContactsView.vue';
|
||||||
const ContactManageView = () => import('./pages/ContactManageView.vue');
|
import ContactManageView from './pages/ContactManageView.vue';
|
||||||
|
|
||||||
export const routes = [
|
export const routes = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* eslint arrow-body-style: 0 */
|
/* eslint arrow-body-style: 0 */
|
||||||
import { frontendURL } from '../../../helper/URLHelper';
|
import { frontendURL } from '../../../helper/URLHelper';
|
||||||
const ConversationView = () => import('./ConversationView.vue');
|
import ConversationView from './ConversationView.vue';
|
||||||
|
|
||||||
const CONVERSATION_PERMISSIONS = [
|
const CONVERSATION_PERMISSIONS = [
|
||||||
'administrator',
|
'administrator',
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import helpcenterRoutes from './helpcenter/helpcenter.routes';
|
|||||||
|
|
||||||
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
||||||
|
|
||||||
const AppContainer = () => import('./Dashboard.vue');
|
import AppContainer from './Dashboard.vue';
|
||||||
const Captain = () => import('./Captain.vue');
|
import Captain from './Captain.vue';
|
||||||
const Suspended = () => import('./suspended/Index.vue');
|
import Suspended from './suspended/Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { getPortalRoute } from './helpers/routeHelper';
|
|||||||
|
|
||||||
import HelpCenterPageRouteView from './pages/HelpCenterPageRouteView.vue';
|
import HelpCenterPageRouteView from './pages/HelpCenterPageRouteView.vue';
|
||||||
|
|
||||||
const PortalsIndex = () => import('./pages/PortalsIndexPage.vue');
|
import PortalsIndex from './pages/PortalsIndexPage.vue';
|
||||||
const PortalsNew = () => import('./pages/PortalsNewPage.vue');
|
import PortalsNew from './pages/PortalsNewPage.vue';
|
||||||
|
|
||||||
const PortalsArticlesIndexPage = () =>
|
const PortalsArticlesIndexPage = () =>
|
||||||
import('./pages/PortalsArticlesIndexPage.vue');
|
import('./pages/PortalsArticlesIndexPage.vue');
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { frontendURL } from 'dashboard/helper/URLHelper';
|
import { frontendURL } from 'dashboard/helper/URLHelper';
|
||||||
const InboxListView = () => import('./InboxList.vue');
|
import InboxListView from './InboxList.vue';
|
||||||
const InboxDetailView = () => import('./InboxView.vue');
|
import InboxDetailView from './InboxView.vue';
|
||||||
const InboxEmptyStateView = () => import('./InboxEmptyState.vue');
|
import InboxEmptyStateView from './InboxEmptyState.vue';
|
||||||
import {
|
import {
|
||||||
ROLES,
|
ROLES,
|
||||||
CONVERSATION_PERMISSIONS,
|
CONVERSATION_PERMISSIONS,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* eslint arrow-body-style: 0 */
|
/* eslint arrow-body-style: 0 */
|
||||||
import { frontendURL } from '../../../helper/URLHelper';
|
import { frontendURL } from '../../../helper/URLHelper';
|
||||||
const SettingsWrapper = () => import('../settings/Wrapper.vue');
|
import SettingsWrapper from '../settings/Wrapper.vue';
|
||||||
const NotificationsView = () => import('./components/NotificationsView.vue');
|
import NotificationsView from './components/NotificationsView.vue';
|
||||||
|
|
||||||
export const routes = [
|
export const routes = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const Bot = () => import('./Index.vue');
|
import Bot from './Index.vue';
|
||||||
const CsmlEditBot = () => import('./csml/Edit.vue');
|
import CsmlEditBot from './csml/Edit.vue';
|
||||||
const CsmlNewBot = () => import('./csml/New.vue');
|
import CsmlNewBot from './csml/New.vue';
|
||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const AgentHome = () => import('./Index.vue');
|
import AgentHome from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const AttributesHome = () => import('./Index.vue');
|
import AttributesHome from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
|
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const AuditLogsHome = () => import('./Index.vue');
|
import AuditLogsHome from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const Automation = () => import('./Index.vue');
|
import Automation from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import {
|
|||||||
ROLES,
|
ROLES,
|
||||||
CONVERSATION_PERMISSIONS,
|
CONVERSATION_PERMISSIONS,
|
||||||
} from 'dashboard/constants/permissions.js';
|
} from 'dashboard/constants/permissions.js';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const CannedHome = () => import('./Index.vue');
|
import CannedHome from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { frontendURL } from 'dashboard/helper/URLHelper';
|
import { frontendURL } from 'dashboard/helper/URLHelper';
|
||||||
|
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const CustomRolesHome = () => import('./Index.vue');
|
import CustomRolesHome from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
import ChannelFactory from './ChannelFactory.vue';
|
import ChannelFactory from './ChannelFactory.vue';
|
||||||
|
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const SettingWrapper = () => import('../SettingsWrapper.vue');
|
import SettingWrapper from '../SettingsWrapper.vue';
|
||||||
const InboxHome = () => import('./Index.vue');
|
import InboxHome from './Index.vue';
|
||||||
const Settings = () => import('./Settings.vue');
|
import Settings from './Settings.vue';
|
||||||
const InboxChannel = () => import('./InboxChannels.vue');
|
import InboxChannel from './InboxChannels.vue';
|
||||||
const ChannelList = () => import('./ChannelList.vue');
|
import ChannelList from './ChannelList.vue';
|
||||||
const AddAgents = () => import('./AddAgents.vue');
|
import AddAgents from './AddAgents.vue';
|
||||||
const FinishSetup = () => import('./FinishSetup.vue');
|
import FinishSetup from './FinishSetup.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const IntegrationHooks = () => import('./IntegrationHooks.vue');
|
import IntegrationHooks from './IntegrationHooks.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
const Webhook = () => import('./Webhooks/Index.vue');
|
import Webhook from './Webhooks/Index.vue';
|
||||||
const DashboardApps = () => import('./DashboardApps/Index.vue');
|
import DashboardApps from './DashboardApps/Index.vue';
|
||||||
const Slack = () => import('./Slack.vue');
|
import Slack from './Slack.vue';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
|
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import {
|
|||||||
ROLES,
|
ROLES,
|
||||||
CONVERSATION_PERMISSIONS,
|
CONVERSATION_PERMISSIONS,
|
||||||
} from 'dashboard/constants/permissions.js';
|
} from 'dashboard/constants/permissions.js';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const Macros = () => import('./Index.vue');
|
import Macros from './Index.vue';
|
||||||
const MacroEditor = () => import('./MacroEditor.vue');
|
import MacroEditor from './MacroEditor.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
|
|
||||||
const SettingsContent = () => import('./Wrapper.vue');
|
import SettingsContent from './Wrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
||||||
|
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
const AgentReports = () => import('./AgentReports.vue');
|
import AgentReports from './AgentReports.vue';
|
||||||
const LabelReports = () => import('./LabelReports.vue');
|
import LabelReports from './LabelReports.vue';
|
||||||
const InboxReports = () => import('./InboxReports.vue');
|
import InboxReports from './InboxReports.vue';
|
||||||
const TeamReports = () => import('./TeamReports.vue');
|
import TeamReports from './TeamReports.vue';
|
||||||
const CsatResponses = () => import('./CsatResponses.vue');
|
import CsatResponses from './CsatResponses.vue';
|
||||||
const BotReports = () => import('./BotReports.vue');
|
import BotReports from './BotReports.vue';
|
||||||
const LiveReports = () => import('./LiveReports.vue');
|
import LiveReports from './LiveReports.vue';
|
||||||
const SLAReports = () => import('./SLAReports.vue');
|
import SLAReports from './SLAReports.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
|
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
const Index = () => import('./Index.vue');
|
import Index from './Index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
import { frontendURL } from '../../../../helper/URLHelper';
|
import { frontendURL } from '../../../../helper/URLHelper';
|
||||||
|
|
||||||
const TeamsIndex = () => import('./Index.vue');
|
import TeamsIndex from './Index.vue';
|
||||||
const CreateStepWrap = () => import('./Create/Index.vue');
|
import CreateStepWrap from './Create/Index.vue';
|
||||||
const EditStepWrap = () => import('./Edit/Index.vue');
|
import EditStepWrap from './Edit/Index.vue';
|
||||||
const CreateTeam = () => import('./Create/CreateTeam.vue');
|
import CreateTeam from './Create/CreateTeam.vue';
|
||||||
const EditTeam = () => import('./Edit/EditTeam.vue');
|
import EditTeam from './Edit/EditTeam.vue';
|
||||||
const AddAgents = () => import('./Create/AddAgents.vue');
|
import AddAgents from './Create/AddAgents.vue';
|
||||||
const EditAgents = () => import('./Edit/EditAgents.vue');
|
import EditAgents from './Edit/EditAgents.vue';
|
||||||
const FinishSetup = () => import('./FinishSetup.vue');
|
import FinishSetup from './FinishSetup.vue';
|
||||||
const SettingsContent = () => import('../Wrapper.vue');
|
import SettingsContent from '../Wrapper.vue';
|
||||||
const SettingsWrapper = () => import('../SettingsWrapper.vue');
|
import SettingsWrapper from '../SettingsWrapper.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
routes: [
|
routes: [
|
||||||
|
|||||||
@@ -11,16 +11,10 @@ import { directive as onClickaway } from 'vue3-click-away';
|
|||||||
import { domPurifyConfig } from '../shared/helpers/HTMLSanitizer';
|
import { domPurifyConfig } from '../shared/helpers/HTMLSanitizer';
|
||||||
import { plugin, defaultConfig } from '@formkit/vue';
|
import { plugin, defaultConfig } from '@formkit/vue';
|
||||||
|
|
||||||
// import { emitter } from 'shared/helpers/mitt';
|
|
||||||
|
|
||||||
// https://github.com/wearebraid/vue-formulate/issues/198
|
|
||||||
// [VITE] [TODO] Re-enable this later
|
|
||||||
// import VueFormulate from '@braid/vue-formulate';
|
|
||||||
import {
|
import {
|
||||||
startsWithPlus,
|
startsWithPlus,
|
||||||
isPhoneNumberValidWithDialCode,
|
isPhoneNumberValidWithDialCode,
|
||||||
} from 'shared/helpers/Validators';
|
} from 'shared/helpers/Validators';
|
||||||
// const PhoneInput = () => import('../widget/components/Form/PhoneInput.vue');
|
|
||||||
|
|
||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
legacy: false, // https://github.com/intlify/vue-i18n/issues/1902
|
legacy: false, // https://github.com/intlify/vue-i18n/issues/1902
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { frontendURL } from 'dashboard/helper/URLHelper';
|
import { frontendURL } from 'dashboard/helper/URLHelper';
|
||||||
|
|
||||||
const Login = () => import('./login/Index.vue');
|
import Login from './login/Index.vue';
|
||||||
const Signup = () => import('./auth/signup/Index.vue');
|
import Signup from './auth/signup/Index.vue';
|
||||||
const ResetPassword = () => import('./auth/reset/password/Index.vue');
|
import ResetPassword from './auth/reset/password/Index.vue';
|
||||||
const Confirmation = () => import('./auth/confirmation/Index.vue');
|
import Confirmation from './auth/confirmation/Index.vue';
|
||||||
const PasswordEdit = () => import('./auth/password/Edit.vue');
|
import PasswordEdit from './auth/password/Edit.vue';
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user