Skip to content

Commit a08cb8b

Browse files
committed
bye pinia
1 parent e350f99 commit a08cb8b

45 files changed

Lines changed: 305 additions & 454 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/WebUI/app/api.config.ts

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,21 @@ export const createClientConfig: CreateClientConfig = (config) => {
2828
...config,
2929
baseURL: import.meta.env.NUXT_PUBLIC_API_BASE_URL,
3030
auth: () => getToken(),
31-
3231
async onResponseError({ response }) {
3332
const toast = useToast()
3433
const route = useRoute()
3534

36-
if (route.meta.roles) {
37-
if (response.status === 401) {
38-
toast.add({
39-
title: 'Session expired',
40-
color: 'error',
41-
duration: 3000,
42-
icon: 'crpg:error',
43-
close: false,
44-
})
45-
await delay(1000)
46-
await login(globalThis.localStorage.getItem('user-platform') as Platform ?? PLATFORM.Steam)
47-
return
48-
}
35+
if (route.meta.roles && response.status === 401) {
36+
toast.add({
37+
title: 'Session expired',
38+
color: 'error',
39+
duration: 3000,
40+
icon: 'crpg:error',
41+
close: false,
42+
})
43+
await delay(1000)
44+
await login(globalThis.localStorage.getItem('user-platform') as Platform ?? PLATFORM.Steam)
45+
return
4946
}
5047

5148
const [error] = (response as FetchResponse<{ errors: CrpgApiError[] }>)._data?.errors ?? []

src/WebUI/app/app.vue

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import { usePageLoadingProvider } from '~/composables/app/use-page-loading'
33
44
const [activePageLoading] = usePageLoadingProvider()
5-
// const { $poll } = useNuxtApp()
65
</script>
76

87
<template>
@@ -15,40 +14,13 @@ const [activePageLoading] = usePageLoadingProvider()
1514
delayDuration: 300,
1615
}"
1716
>
18-
<!--
19-
{{ $poll.keys }}
20-
{{ activePageLoading }}
21-
-->
22-
2317
<NuxtLoadingIndicator color="rgb(210 187 138)" />
24-
2518
<NuxtRouteAnnouncer />
2619

2720
<NuxtLayout>
2821
<NuxtPage />
2922
</NuxtLayout>
3023

31-
<!-- TODO: FIXME: -->
32-
<!-- <NuxtErrorBoundary>
33-
<NuxtLayout>
34-
<NuxtPage />
35-
</NuxtLayout>
36-
37-
<template #error="{ error, clearError }">
38-
<UModal
39-
open
40-
:title="$t('error.title')"
41-
>
42-
<template #body>
43-
<p>An error occurred: {{ error }}</p>
44-
<button @click="clearError">
45-
Clear error
46-
</button>
47-
</template>
48-
</UModal>
49-
</template>
50-
</NuxtErrorBoundary> -->
51-
5224
<AppBundledSprite />
5325

5426
<Teleport to="body">

src/WebUI/app/components/app/Login.vue

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,20 @@ import { useStorage } from '@vueuse/core'
55
66
import type { Platform } from '~/models/platform'
77
8+
import { useUser } from '~/composables/user/use-user'
89
import { useAsyncCallback } from '~/composables/utils/use-async-callback'
910
import { AVAILABLE_PLATFORM, PLATFORM } from '~/models/platform'
1011
import { login } from '~/services/auth-service'
1112
import { platformToIcon } from '~/services/platform-service'
12-
import { useUserStore } from '~/stores/user'
1313
1414
const { size = 'xl' } = defineProps<{ size?: ButtonProps['size'] }>()
15-
const userStore = useUserStore()
16-
const { user } = toRefs(userStore)
15+
const { user } = useUser()
1716
18-
const platform = useStorage<Platform>('user-platform', PLATFORM.Steam) // Steam by default
17+
const platform = useStorage<Platform>('user-platform', PLATFORM.Steam)
1918
2019
const { t } = useI18n()
2120
22-
const {
23-
execute: loginUser,
24-
isLoading: logging,
25-
} = useAsyncCallback(() => login(platform.value))
21+
const [loginUser, logging] = useAsyncCallback(() => login(platform.value))
2622
2723
const items = AVAILABLE_PLATFORM.map(p => ({
2824
label: t(`platform.${p}`),

src/WebUI/app/components/app/layout/Footer.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<script setup lang="ts">
22
import type { HHEvent } from '~/services/hh-service'
33
4-
import { useUserStore } from '~/stores/user'
4+
import { useUser } from '~/composables/user/use-user'
55
66
defineProps<{ hHEvent: HHEvent }>()
77
8-
const userStore = useUserStore()
8+
const { user } = useUser()
99
1010
const scrollToTop = () =>
1111
window.scrollTo({
@@ -24,16 +24,16 @@ const scrollToTop = () =>
2424
/>
2525

2626
<div class="flex items-center gap-5">
27-
<template v-if="userStore.user">
28-
<AppHHTooltip :region="userStore.user.region">
27+
<template v-if="user">
28+
<AppHHTooltip :region="user.region">
2929
<UiDataCell class="hover:text-highlighted">
3030
<template #leftContent>
3131
<UIcon
3232
name="crpg:gift"
3333
class="size-6"
3434
/>
3535
</template>
36-
{{ $t('hh.tooltip-trigger', { region: $t(`region.${userStore.user.region}`, 1) }) }}
36+
{{ $t('hh.tooltip-trigger', { region: $t(`region.${user.region}`, 1) }) }}
3737
<template #rightContent>
3838
{{ $d(hHEvent.start, 'time') }} - {{ $d(hHEvent.end, 'time') }}
3939
</template>

src/WebUI/app/components/app/layout/MainNavigation.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import type { NavigationMenuItem } from '@nuxt/ui'
33
44
import type { PatchNote } from '~/models/patch-note'
55
6-
import { useUserStore } from '~/stores/user'
6+
import { useUser } from '~/composables/user/use-user'
77
88
defineProps<{ latestPatch?: PatchNote }>()
99
1010
const { settings } = useAppConfig()
1111
12-
const userStore = useUserStore()
12+
const { user, clan } = useUser()
1313
const { t } = useI18n()
1414
1515
const items = computed(() => {
@@ -25,7 +25,7 @@ const items = computed(() => {
2525
},
2626
]
2727
28-
if (!userStore.user) {
28+
if (!user.value) {
2929
return common
3030
}
3131
@@ -117,7 +117,7 @@ const items = computed(() => {
117117
<UIcon name="crpg:trophy-cup" class="size-6 text-gold" />
118118
</template>
119119

120-
<template v-if="!userStore.clan" #clans-leading>
120+
<template v-if="!clan" #clans-leading>
121121
<UTooltip data-aq-main-nav-link-tooltip="Explanation">
122122
<UBadge
123123
icon="crpg:tag"

src/WebUI/app/components/character/inventory/item/CharacterInventoryItemCard.vue

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,19 @@
22
import type { UserItem, UserPublic } from '~/models/user'
33
44
import { getItemGraceTimeEnd, isGraceTimeExpired } from '~/services/item-service'
5-
import { useUserStore } from '~/stores/user'
65
76
const {
87
equipped = false,
98
notMeetRequirement = false,
109
userItem,
1110
} = defineProps<{
11+
userId: number
1212
userItem: UserItem
1313
equipped?: boolean
1414
notMeetRequirement?: boolean
1515
lender?: UserPublic | null
1616
}>()
1717
18-
const { user } = toRefs(useUserStore())
19-
2018
const isNew = computed(() => !isGraceTimeExpired(getItemGraceTimeEnd(userItem)))
2119
</script>
2220

@@ -37,8 +35,8 @@ const isNew = computed(() => !isGraceTimeExpired(getItemGraceTimeEnd(userItem)))
3735

3836
<template v-if="userItem.isArmoryItem">
3937
<ClanArmoryItemRelationBadge
40-
v-if="lender && lender.id !== user!.id"
41-
:lender="lender"
38+
v-if="lender && lender.id !== userId"
39+
:lender
4240
class="cursor-default"
4341
/>
4442

src/WebUI/app/components/character/inventory/item/CharacterInventoryItemDetail.vue

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ import { itemSellCostPenalty } from '~root/data/constants.json'
77
import type { CompareItemsResult } from '~/models/item'
88
import type { UserItem, UserPublic } from '~/models/user'
99
10+
import { useUser } from '~/composables/user/use-user'
1011
import {
1112
canAddedToClanArmory,
1213
canSell,
1314
canUpgradeUserItem,
1415
computeBrokenItemRepairCost,
1516
computeSalePrice,
1617
} from '~/services/item-service'
17-
import { useUserStore } from '~/stores/user'
1818
import { parseTimestamp } from '~/utils/date'
1919
2020
const {
21+
userItem,
2122
compareResult,
2223
equipped = false,
23-
userItem,
2424
} = defineProps<{
2525
userItem: UserItem
2626
compareResult?: CompareItemsResult
@@ -38,7 +38,7 @@ const emit = defineEmits<{
3838
returnToClanArmory: []
3939
}>()
4040
41-
const { clan, user } = toRefs(useUserStore())
41+
const { user, clan } = useUser()
4242
4343
const userItemToReplaceSalePrice = computed(() => {
4444
const { graceTimeEnd, price } = computeSalePrice(userItem)
@@ -57,19 +57,7 @@ const isCanAddedToClanArmory = computed(() => canAddedToClanArmory(userItem))
5757
5858
const overlay = useOverlay()
5959
60-
const itemUpgradesModal = overlay.create(LazyCharacterInventoryItemUpgradesModal, {
61-
props: {
62-
userItem,
63-
onReforge: () => {
64-
itemUpgradesModal.close()
65-
emit('reforge')
66-
},
67-
onUpgrade: () => {
68-
itemUpgradesModal.close()
69-
emit('upgrade')
70-
},
71-
},
72-
})
60+
const itemUpgradesModal = overlay.create(LazyCharacterInventoryItemUpgradesModal)
7361
7462
const { t } = useI18n()
7563
@@ -103,12 +91,22 @@ const itemActions = computed(() => {
10391
onSelect: () => {
10492
itemUpgradesModal.open({
10593
userItem,
94+
gold: user.value!.gold,
95+
heirloomPoints: user.value!.heirloomPoints,
96+
onReforge: () => {
97+
itemUpgradesModal.close()
98+
emit('reforge')
99+
},
100+
onUpgrade: () => {
101+
itemUpgradesModal.close()
102+
emit('upgrade')
103+
},
106104
})
107105
},
108106
})
109107
}
110108
111-
if (clan.value && isCanAddedToClanArmory.value) {
109+
if (!!clan.value && isCanAddedToClanArmory.value) {
112110
if (!userItem.isArmoryItem) {
113111
result.push({
114112
slot: 'armory-add' as const,

src/WebUI/app/components/character/inventory/item/CharacterInventoryItemUpgradesModal.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@ import { useItemReforge } from '~/composables/item/use-item-reforge'
1010
import { useItemUpgrades } from '~/composables/item/use-item-upgrades'
1111
import { createItemIndex } from '~/services/item-search-service/indexator'
1212
import { getItemAggregations, getRankColor } from '~/services/item-service'
13-
import { useUserStore } from '~/stores/user'
1413
1514
const { userItem } = defineProps<{
1615
userItem: UserItem
16+
gold: number
17+
heirloomPoints: number
1718
}>()
1819
1920
const emit = defineEmits<{
2021
upgrade: []
2122
reforge: []
2223
}>()
2324
24-
const userStore = useUserStore()
2525
const { t } = useI18n()
2626
2727
// TODO:
@@ -114,8 +114,8 @@ async function reforge() {
114114
{{ $t('character.inventory.item.upgrade.upgradesTitle') }}
115115
</UiTextView>
116116

117-
<AppLoom :point="userStore.user!.heirloomPoints" />
118-
<AppCoin :value="userStore.user!.gold" />
117+
<AppLoom :point="heirloomPoints" />
118+
<AppCoin :value="gold" />
119119

120120
<UTooltip>
121121
<!-- This extra div fixes a bug where this popover opens itself when the parent modal window opens. -->

src/WebUI/app/components/clan/armory/ClanArmoryItemDetail.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import type { DropdownMenuItem } from '@nuxt/ui'
44
import type { ClanArmoryItem } from '~/models/clan'
55
import type { UserPublic } from '~/models/user'
66
7+
import { useUser } from '~/composables/user/use-user'
78
import { CLAN_MEMBER_ROLE } from '~/models/clan'
89
import { isOwnClanArmoryItem } from '~/services/clan-service'
9-
import { useUserStore } from '~/stores/user'
1010
1111
const { borrower, clanArmoryItem, lender } = defineProps<{
1212
clanArmoryItem: ClanArmoryItem
@@ -20,7 +20,7 @@ const emit = defineEmits<{
2020
return: []
2121
}>()
2222
23-
const { clanMemberRole, user } = toRefs(useUserStore())
23+
const { clanMemberRole, user } = useUser()
2424
2525
const { t } = useI18n()
2626

src/WebUI/app/components/clan/armory/ClanArmoryItemRelationBadge.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<script setup lang="ts">
22
import type { UserPublic } from '~/models/user'
33
4-
import { useUserStore } from '~/stores/user'
4+
import { useUser } from '~/composables/user/use-user'
55
66
const { borrower, lender } = defineProps<{
77
lender: UserPublic
88
borrower?: UserPublic | null
99
}>()
1010
11-
const { user } = toRefs(useUserStore())
11+
const { user } = useUser()
1212
</script>
1313

1414
<template>

0 commit comments

Comments
 (0)