Skip to content

Commit ce87431

Browse files
committed
CacheClearModalのプロトタイプができた
1 parent 38e6168 commit ce87431

File tree

4 files changed

+46
-34
lines changed

4 files changed

+46
-34
lines changed

src/components/Settings/BrowserTab/ClearCache.vue renamed to src/components/Modal/CacheClearModal/CacheClearModal.vue

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
11
<template>
2-
<div>
3-
<h3 :class="$style.header">キャッシュの削除</h3>
4-
<div :class="$style.content">
5-
<p v-if="cacheData && cacheData.usage" :class="$style.usage">
6-
<template v-if="cacheData.usageDetails">
7-
<label v-for="(usage, key) in cacheData.usageDetails" :key="key">
8-
<input v-model="selectedCaches" type="checkbox" :value="key" />
9-
{{ key }} {{ prettifyFileSize(usage) }}
10-
</label>
11-
</template>
12-
<template v-else>
13-
{{ prettifyFileSize(cacheData.usage) }}
14-
</template>
15-
</p>
16-
<div v-for="(cache, index) in selectedCaches" :key="index">
17-
{{ cache }}
2+
<modal-frame
3+
title="キャッシュの削除"
4+
subtitle="キャッシュを削除する項目を選んで下さい。"
5+
>
6+
<div>
7+
<div :class="$style.content">
8+
<p v-if="cacheData && cacheData.usage" :class="$style.usage">
9+
<template v-if="cacheData.usageDetails">
10+
<label v-for="(usage, key) in cacheData.usageDetails" :key="key">
11+
<input v-model="selectedCaches" type="checkbox" :value="key" />
12+
{{ key }} {{ prettifyFileSize(usage) }}
13+
</label>
14+
</template>
15+
<template v-else>
16+
{{ prettifyFileSize(cacheData.usage) }}
17+
</template>
18+
</p>
19+
<form-button
20+
:class="$style.button"
21+
label="キャンセル"
22+
@click="clearModal"
23+
/>
24+
<form-button
25+
:class="$style.button"
26+
label="削除する"
27+
is-danger
28+
@click="clearCache"
29+
/>
1830
</div>
19-
<form-button
20-
:class="$style.button"
21-
label="キャンセル"
22-
@click="closeModal"
23-
/>
24-
<form-button
25-
:class="$style.button"
26-
label="削除する"
27-
is-danger
28-
@click="clearCache"
29-
/>
3031
</div>
31-
</div>
32+
</modal-frame>
3233
</template>
3334

3435
<script lang="ts">
@@ -59,7 +60,9 @@ const clearCacheStorage = (cacheName: string) => window.caches.delete(cacheName)
5960
</script>
6061

6162
<script lang="ts" setup>
63+
import ModalFrame from '../Common/ModalFrame.vue'
6264
import FormButton from '/@/components/UI/FormButton.vue'
65+
import { useModalStore } from '/@/store/ui/modal'
6366
6467
const { fetchStamps } = useStampsStore()
6568
const { addSuccessToast } = useToastStore()
@@ -75,9 +78,7 @@ onMounted(setCacheData)
7578
7679
const selectedCaches = ref<Array<string>>([])
7780
78-
const closeModal = () => {
79-
return
80-
}
81+
const { clearModal } = useModalStore()
8182
8283
const clearCache = async () => {
8384
if (!confirmClear()) return

src/components/Modal/ModalContainer.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import GroupCreateModal from './GroupCreateModal/GroupCreateModal.vue'
6363
import GroupMemberEditModal from './GroupMemberEditModal/GroupMemberEditModal.vue'
6464
import GroupAdminAddModal from './GroupAdminAddModal/GroupAdminAddModal.vue'
6565
import GroupMemberAddModal from './GroupMemberAddModal/GroupMemberAddModal.vue'
66+
import CacheClearModal from './CacheClearModal/CacheClearModal.vue'
6667
6768
const { shouldShowModal, currentState } = useModalStore()
6869
@@ -96,6 +97,8 @@ const component = computed(() => {
9697
return GroupAdminAddModal
9798
case 'group-member-add':
9899
return GroupMemberAddModal
100+
case 'cache-clear':
101+
return CacheClearModal
99102
}
100103
// eslint-disable-next-line no-console
101104
console.error('Unexpected modal type:', currentState.value)

src/components/Settings/BrowserTab/CacheManager.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
@click="openClearCacheModal"
1414
/>
1515
</div>
16-
<clear-cache />
1716
</div>
1817
</template>
1918

@@ -38,16 +37,19 @@ const getStorageUsage = async () => {
3837

3938
<script lang="ts" setup>
4039
import FormButton from '/@/components/UI/FormButton.vue'
41-
import ClearCache from './ClearCache.vue'
40+
import { useModalStore } from '/@/store/ui/modal'
4241
4342
const cacheData = ref<StorageEstimate | null>(null)
4443
const setCacheData = async () => {
4544
cacheData.value = await getStorageUsage()
4645
}
4746
onMounted(setCacheData)
4847
48+
const { pushModal } = useModalStore()
4949
const openClearCacheModal = async () => {
50-
return
50+
pushModal({
51+
type: 'cache-clear'
52+
})
5153
}
5254
</script>
5355

src/store/ui/modal/states.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type ModalStateType =
2424
| 'group-member-edit'
2525
| 'group-admin-add'
2626
| 'group-member-add'
27+
| 'cache-clear'
2728

2829
export type ModalState =
2930
| UserModalState
@@ -40,6 +41,7 @@ export type ModalState =
4041
| GroupMemberEditModalState
4142
| GroupAdminAddModalState
4243
| GroupMemberAddModalState
44+
| CacheClearModalState
4345

4446
interface BaseModalState {
4547
/** モーダル種別 */
@@ -123,3 +125,7 @@ interface GroupMemberAddModalState extends BaseModalState {
123125
type: 'group-member-add'
124126
id: UserGroupId
125127
}
128+
129+
interface CacheClearModalState extends BaseModalState {
130+
type: 'cache-clear'
131+
}

0 commit comments

Comments
 (0)