Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
7ec48dc
refactor: refactor global-config codes (#5792)
skdud4659 Apr 22, 2025
1bdd598
chore: add missed api endpoint (#5793)
skdud4659 Apr 22, 2025
63aacfa
refactor: apply merged config to service-api (#5798)
skdud4659 Apr 22, 2025
573b8be
feat(global-store): separate global store concern
piggggggggy Apr 22, 2025
691c036
refactor(user-store): remove authorization concern from user-store
piggggggggy Apr 23, 2025
db213eb
feat(authorization): create authorization store
piggggggggy Apr 23, 2025
fb9b628
refactor(display-store): remove menu concern from display-store
piggggggggy Apr 23, 2025
b450113
refactor(global-config-schema-store): remove menu concern from gcs-store
piggggggggy Apr 23, 2025
d1baf58
chore: refactor menu-store
piggggggggy Apr 23, 2025
42e7e2e
chore: apply changed store
piggggggggy Apr 23, 2025
878a70a
feat(all-menu): create all menu list composable (from display-store)
piggggggggy Apr 23, 2025
da51df9
chore: apply all menu list composable
piggggggggy Apr 23, 2025
dbeb94a
chore: apply authorization store
piggggggggy Apr 23, 2025
05d3ea2
chore: refactor and apply ui affects composable
piggggggggy Apr 23, 2025
17bf453
fix(router): refactor grant with router
piggggggggy Apr 23, 2025
987397d
refactor(route-helper): refactor and apply route-helper
piggggggggy Apr 23, 2025
65c3713
chore: small fix
piggggggggy Apr 23, 2025
13b2821
chore: refactor @ts-nocheck
piggggggggy Apr 23, 2025
9d8c7c7
chore: small fix
piggggggggy Apr 23, 2025
c0af31a
chore: fix type error
piggggggggy Apr 23, 2025
6034d19
chore: small fix
piggggggggy Apr 23, 2025
2ab31a9
chore: add defensive code
piggggggggy Apr 23, 2025
4b60adf
Merge pull request #5796 from piggggggggy/store-separation
piggggggggy Apr 23, 2025
13ed073
chore: remove unused store and vars
piggggggggy Apr 23, 2025
58b26ce
Merge pull request #5813 from piggggggggy/refactor-store
piggggggggy Apr 23, 2025
4053f6c
chore: small fix
piggggggggy Apr 23, 2025
c629deb
chore: small fix
piggggggggy Apr 24, 2025
22927f1
Merge branch 'develop' into feature-optimizing-console-preset
piggggggggy Apr 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion apps/web/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { EXTERNAL_PAGE_ROUTE } from '@/router/constant';
import { getRouteScope } from '@/router/helpers/route-helper';

import { useAppContextStore } from '@/store/app-context/app-context-store';
import { useAuthorizationStore } from '@/store/authorization/authorization-store';
import { SIDEBAR_TYPE } from '@/store/display/constant';
import { useDisplayStore } from '@/store/display/display-store';
import { useErrorStore } from '@/store/error/error-store';
Expand Down Expand Up @@ -70,6 +71,7 @@ const state = reactive({
});

const userStore = useUserStore();
const authorizationStore = useAuthorizationStore();
const appContextStore = useAppContextStore();
const errorStore = useErrorStore();
const globalUIStore = useGlobalUIStore();
Expand All @@ -88,7 +90,7 @@ const goToSignIn = async () => {
name: AUTH_ROUTE.SIGN_OUT._NAME,
query: { previousPath: route.fullPath },
};
userStore.setCurrentGrantInfo(undefined);
authorizationStore.setCurrentGrantInfo(undefined);
errorStore.setVisibleSessionExpiredError(false);

await router.push(to);
Expand Down
61 changes: 0 additions & 61 deletions apps/web/src/api-clients/api-client-manager.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { ROLE_TYPE } from '@/api-clients/identity/role/constant';
import { i18n } from '@/translations';

import { useAppContextStore } from '@/store/app-context/app-context-store';
import { useUserStore } from '@/store/user/user-store';
import { useAuthorizationStore } from '@/store/authorization/authorization-store';

import { BOOKMARK_MODAL_TYPE } from '@/common/components/bookmark/constant/constant';
import { useBookmarkStore } from '@/common/components/bookmark/store/bookmark-store';
Expand Down Expand Up @@ -38,13 +38,13 @@ const bookmarkStore = useBookmarkStore();
const bookmarkState = bookmarkStore.state;
const appContextStore = useAppContextStore();
const appContextGetters = appContextStore.getters;
const userStore = useUserStore();
const authorizationStore = useAuthorizationStore();

const emit = defineEmits<{(e: 'confirm', isEdit?: boolean, name?: string): void; }>();

const storeState = reactive({
isAdminMode: computed(() => appContextGetters.isAdminMode),
isWorkspaceMember: computed<boolean>(() => userStore.state.currentRoleInfo?.roleType === ROLE_TYPE.WORKSPACE_MEMBER),
isWorkspaceMember: computed<boolean>(() => authorizationStore.state.currentRoleInfo?.roleType === ROLE_TYPE.WORKSPACE_MEMBER),

modal: computed<BookmarkModalStateType>(() => bookmarkState.modal),
bookmarkType: computed<BookmarkType|undefined>(() => bookmarkState.bookmarkType),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { i18n } from '@/translations';

import { useAppContextStore } from '@/store/app-context/app-context-store';
import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store';
import { useUserStore } from '@/store/user/user-store';
import { useAuthorizationStore } from '@/store/authorization/authorization-store';

import { showSuccessMessage } from '@/lib/helper/notice-alert-helper';

Expand Down Expand Up @@ -47,14 +47,14 @@ const userWorkspaceStore = useUserWorkspaceStore();
const userWorkspaceStoreGetters = userWorkspaceStore.getters;
const appContextStore = useAppContextStore();
const appContextGetters = appContextStore.getters;
const userStore = useUserStore();
const authorizationStore = useAuthorizationStore();

const emit = defineEmits<{(e: 'confirm', selectedFolder?: BookmarkItem, scope?: BookmarkType): void; }>();

const storeState = reactive({
isAdminMode: computed(() => appContextGetters.isAdminMode),
currentWorkspaceId: computed<string|undefined>(() => userWorkspaceStoreGetters.currentWorkspaceId),
isWorkspaceMember: computed<boolean>(() => userStore.state.currentRoleInfo?.roleType === ROLE_TYPE.WORKSPACE_MEMBER),
isWorkspaceMember: computed<boolean>(() => authorizationStore.state.currentRoleInfo?.roleType === ROLE_TYPE.WORKSPACE_MEMBER),

modal: computed<BookmarkModalStateType>(() => bookmarkState.modal),
selectedBookmark: computed<BookmarkItem|undefined>(() => bookmarkState.selectedBookmark),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Ref } from 'vue';
import { computed, reactive, toRef } from 'vue';

import { useGlobalConfigSchemaStore } from '@/store/global-config-schema/global-config-schema-store';
import { useMenuStore } from '@/store/menu/menu-store';

import type { MenuId } from '@/lib/menu/config';

Expand All @@ -10,10 +10,10 @@ interface UseContentsAccessibilityReturnType {
}

export const useContentsAccessibility = (menuId: MenuId): UseContentsAccessibilityReturnType => {
const globalConfigSchemaStore = useGlobalConfigSchemaStore();
const menuStore = useMenuStore();

const state = reactive({
visibleContents: computed<boolean>(() => globalConfigSchemaStore.getters.menuList.findIndex((menu) => menu.id === menuId) !== -1),
visibleContents: computed<boolean>(() => menuStore.getters.menuList.findIndex((menu) => menu.id === menuId) !== -1),
});

return {
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/common/composables/grant-scope-guard/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { computed, reactive, watch } from 'vue';
import type { GrantScope } from '@/api-clients/identity/token/schema/type';

import { useAppContextStore } from '@/store/app-context/app-context-store';
import type { GrantInfo } from '@/store/user/type';
import { useUserStore } from '@/store/user/user-store';
import { useAuthorizationStore } from '@/store/authorization/authorization-store';
import type { GrantInfo } from '@/store/authorization/type';

import ErrorHandler from '@/common/composables/error/errorHandler';

Expand All @@ -14,10 +14,10 @@ interface GrantScopeGuardReturnType {
}
export const useGrantScopeGuard = (requiredScopes: GrantScope[], apiFunction: () => Promise<void>): GrantScopeGuardReturnType => {
const appContextStore = useAppContextStore();
const userStore = useUserStore();
const authorizationStore = useAuthorizationStore();

const state = reactive({
currentGrantInfo: computed<GrantInfo>(() => userStore.state.currentGrantInfo || { scope: 'USER' }),
currentGrantInfo: computed<GrantInfo>(() => authorizationStore.state.currentGrantInfo || { scope: 'USER' }),
isLoading: computed(() => appContextStore.getters.globalGrantLoading),
isValidScope: computed(() => requiredScopes.includes(state.currentGrantInfo.scope)),
});
Expand Down
14 changes: 3 additions & 11 deletions apps/web/src/common/composables/page-editable-status/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import type { Ref } from 'vue';
import { computed, reactive, toRef } from 'vue';

import { useUserStore } from '@/store/user/user-store';

import type { PageAccessMap } from '@/lib/access-control/config';
import { useAuthorizationStore } from '@/store/authorization/authorization-store';

import { useCurrentMenuId } from '@/common/composables/current-menu-id';

Expand All @@ -12,17 +10,11 @@ interface UsePageEditableStatusReturnType {
}

export const usePageEditableStatus = (): UsePageEditableStatusReturnType => {
const userStore = useUserStore();
const userGetters = userStore.getters;

const authorizationStore = useAuthorizationStore();
const { currentMenuId } = useCurrentMenuId();

const storeState = reactive({
pageAccessPermissionMap: computed<PageAccessMap>(() => userGetters.pageAccessPermissionMap),
});

const state = reactive({
hasReadWriteAccess: computed<boolean|undefined>(() => storeState.pageAccessPermissionMap[currentMenuId.value]?.write),
hasReadWriteAccess: computed<boolean|undefined>(() => authorizationStore.getters.pageAccessPermissionMap[currentMenuId.value]?.write),
});

return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import {
computed, reactive,
} from 'vue';
import { useRoute } from 'vue-router/composables';
import { useRoute, useRouter } from 'vue-router/composables';

import { PI } from '@cloudforet/mirinae';

Expand All @@ -12,7 +12,6 @@ import type { MetricExampleModel } from '@/schema/inventory/metric-example/model

import { useAppContextStore } from '@/store/app-context/app-context-store';
import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store';
import { useDisplayStore } from '@/store/display/display-store';
import { useAllReferenceStore } from '@/store/reference/all-reference-store';
import type { CloudServiceTypeReferenceMap } from '@/store/reference/cloud-service-type-reference-store';
import type { CostDataSourceReferenceMap } from '@/store/reference/cost-data-source-reference-store';
Expand All @@ -34,6 +33,7 @@ import {
convertWorkspaceConfigToReferenceData,
convertServiceConfigToReferenceData,
} from '@/lib/helper/config-data-helper';
import { useAllMenuList } from '@/lib/menu/use-all-menu-list';

import { useGlobalDashboardQuery } from '@/common/composables/global-dashboard/use-global-dashboard-query';
import { useFavoriteStore } from '@/common/modules/favorites/favorite-button/store/favorite-store';
Expand All @@ -57,6 +57,7 @@ const props = withDefaults(defineProps<Props>(), {
});

const route = useRoute();
const router = useRouter();

const allReferenceStore = useAllReferenceStore();
const userWorkspaceStore = useUserWorkspaceStore();
Expand All @@ -66,7 +67,8 @@ const favoriteStore = useFavoriteStore();
const favoriteStoreGetters = favoriteStore.getters;
const gnbStore = useGnbStore();
const gnbStoreGetters = gnbStore.getters;
const displayStore = useDisplayStore();
const { getAllMenuList } = useAllMenuList();


/* Query */
const {
Expand Down Expand Up @@ -152,7 +154,7 @@ const convertFavoriteToReferenceData = (favoriteConfig: FavoriteConfig): Referen
if (itemType === FAVORITE_TYPE.SERVICE) {
return convertServiceConfigToReferenceData([favoriteConfig], storeState.service)[0];
}
const allMenuList = displayStore.getAllMenuList(route);
const allMenuList = getAllMenuList(route, router);
return convertMenuConfigToReferenceData([favoriteConfig], allMenuList)[0];
};
</script>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-nocheck
import { computed, reactive, watch } from 'vue';

import { defineStore } from 'pinia';
Expand Down Expand Up @@ -62,6 +60,10 @@ export const useFavoriteStore = defineStore('favorite', () => {

const actions = {
fetchFavorite: async () => {
if (!_getters.userId) {
console.error('userId is not found');
return;
}
favoriteListApiQuery.setFilters([
{ k: 'user_id', v: _getters.userId, o: '=' },
{ k: 'name', v: 'console:favorite:', o: '' },
Expand All @@ -79,6 +81,10 @@ export const useFavoriteStore = defineStore('favorite', () => {
}
},
fetchWorkspaceFavorite: async () => {
if (!_getters.userId) {
console.error('userId is not found');
return;
}
favoriteListApiQuery.setFilters([
{ k: 'user_id', v: _getters.userId, o: '=' },
{ k: 'name', v: `console:favorite:${FAVORITE_TYPE.WORKSPACE}`, o: '' },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ import type { ContextMenuType } from '@cloudforet/mirinae/types/controls/context

import { useAppContextStore } from '@/store/app-context/app-context-store';
import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store';
import { useDisplayStore } from '@/store/display/display-store';
import type { DisplayMenu } from '@/store/display/type';
import type { DisplayMenu } from '@/store/menu/type';
import { useAllReferenceStore } from '@/store/reference/all-reference-store';
import type { CostDataSourceReferenceMap } from '@/store/reference/cost-data-source-reference-store';

import type { MenuId } from '@/lib/menu/config';
import { MENU_ID } from '@/lib/menu/config';
import { useAllMenuList } from '@/lib/menu/use-all-menu-list';

import BetaMark from '@/common/components/marks/BetaMark.vue';
import NewMark from '@/common/components/marks/NewMark.vue';
Expand All @@ -44,7 +44,7 @@ const gnbStore = useGnbStore();
const gnbGetters = gnbStore.getters;
const userWorkspaceStore = useUserWorkspaceStore();
const userWorkspaceGetters = userWorkspaceStore.getters;
const displayStore = useDisplayStore();
const { getAllMenuList } = useAllMenuList();

const route = useRoute();
const router = useRouter();
Expand All @@ -69,7 +69,7 @@ const state = reactive({
isMenuDescription: undefined as boolean | undefined,
gnbMenuList: computed<GNBMenuType[]|undefined>(() => {
let results = [] as GNBMenuType[];
const allMenuList = displayStore.getAllMenuList(route);
const allMenuList = getAllMenuList(route, router);
const menuList = allMenuList.filter((d) => !d.hideOnGNB);
if (state.isInit && isEmpty(storeState.costDataSource)) {
results = removeCostExplorerFromMenuList(menuList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@ import type { ValueItem } from '@cloudforet/mirinae/types/controls/search/query-

import { useReferenceRouter } from '@/router/composables/use-reference-router';

import { useAuthorizationStore } from '@/store/authorization/authorization-store';
import { useAllReferenceStore } from '@/store/reference/all-reference-store';
import { useUserStore } from '@/store/user/user-store';

import type { PageAccessMap } from '@/lib/access-control/config';
import { MENU_ID } from '@/lib/menu/config';

import { useRecentStore } from '@/common/modules/navigations/stores/recent-store';
Expand Down Expand Up @@ -54,8 +53,8 @@ const BOTTOM_MARGIN = 5.5 * 16;

const topBarSearchStore = useTopBarSearchStore();
const recentStore = useRecentStore();
const userStore = useUserStore();
const windowSize = useWindowSize();
const authorizationStore = useAuthorizationStore();

const { getReferenceLocation } = useReferenceRouter();

Expand All @@ -73,7 +72,6 @@ const getTabHeaderHeight = () => {
const storeState = reactive({
activeTab: computed(() => topBarSearchStore.state.activeTab),
cloudServiceTypeMap: computed(() => allReferenceStore.getters.cloudServiceType),
pageAccessPermissionMap: computed<PageAccessMap>(() => userStore.getters.pageAccessPermissionMap),
});

const state = reactive({
Expand All @@ -86,7 +84,7 @@ const state = reactive({
tabs: computed(() => {
const accessMenuList: ValueItem[] = [];
state.defaultServiceTabs.forEach((i) => {
if (storeState.pageAccessPermissionMap[i.id]) {
if (authorizationStore.getters.pageAccessPermissionMap[i.id]) {
accessMenuList.push({ label: i.label, name: i.name });
}
});
Expand Down
Loading
Loading