✨ Enhance file selection and loading logic with dynamic options and support for "All Forms" files
This commit is contained in:
@@ -92,14 +92,8 @@
|
|||||||
<label for="file-select">Select File:</label>
|
<label for="file-select">Select File:</label>
|
||||||
<select id="file-select" v-model="selectedFile" @change="onFileChange">
|
<select id="file-select" v-model="selectedFile" @change="onFileChange">
|
||||||
<option value="">-- Choose a file --</option>
|
<option value="">-- Choose a file --</option>
|
||||||
<option v-if="status.files?.pokemonFile" value="pokemon">
|
<option v-for="file in status.available" :key="file.filename" :value="getFileType(file.filename)">
|
||||||
Pokemon ({{ formatSize(status.files.pokemonFile.size) }})
|
{{ formatFileName(file.filename) }} ({{ formatSize(file.size) }})
|
||||||
</option>
|
|
||||||
<option v-if="status.files?.movesFile" value="moves">
|
|
||||||
Moves ({{ formatSize(status.files.movesFile.size) }})
|
|
||||||
</option>
|
|
||||||
<option v-if="status.files?.rawFile" value="raw">
|
|
||||||
Raw Gamemaster ({{ formatSize(status.files.rawFile.size) }})
|
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
<span v-if="fileContent" class="file-info"
|
<span v-if="fileContent" class="file-info"
|
||||||
@@ -457,6 +451,9 @@ async function loadFile() {
|
|||||||
case 'pokemon':
|
case 'pokemon':
|
||||||
data = await perfMonitor('Load Pokemon', () => client.getPokemon());
|
data = await perfMonitor('Load Pokemon', () => client.getPokemon());
|
||||||
break;
|
break;
|
||||||
|
case 'allForms':
|
||||||
|
data = await perfMonitor('Load All Forms', () => client.getAllForms());
|
||||||
|
break;
|
||||||
case 'moves':
|
case 'moves':
|
||||||
data = await perfMonitor('Load Moves', () => client.getMoves());
|
data = await perfMonitor('Load Moves', () => client.getMoves());
|
||||||
break;
|
break;
|
||||||
@@ -698,6 +695,22 @@ function formatSize(bytes) {
|
|||||||
return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];
|
return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getFileType(filename) {
|
||||||
|
if (filename.includes('pokemon') && filename.includes('AllForms')) return 'allForms';
|
||||||
|
if (filename.includes('pokemon')) return 'pokemon';
|
||||||
|
if (filename.includes('moves')) return 'moves';
|
||||||
|
if (filename.includes('raw')) return 'raw';
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatFileName(filename) {
|
||||||
|
if (filename.includes('pokemon') && filename.includes('AllForms')) return 'Pokemon All Forms';
|
||||||
|
if (filename.includes('pokemon')) return 'Pokemon';
|
||||||
|
if (filename.includes('moves')) return 'Moves';
|
||||||
|
if (filename.includes('raw')) return 'Raw Gamemaster';
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
// Lifecycle
|
// Lifecycle
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loadStatus();
|
loadStatus();
|
||||||
|
|||||||
Reference in New Issue
Block a user