Skip to content

Commit 53f559a

Browse files
committed
Add fancy table but filenames don't update
1 parent 57da0e3 commit 53f559a

File tree

3 files changed

+56
-45
lines changed

3 files changed

+56
-45
lines changed

src/app.d.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
declare global {
2+
namespace App {}
3+
}
4+
5+
declare module 'simple-datatables' {
6+
export { DataTable } from 'simple-datatables/dist/dts/datatable';
7+
export { convertCSV, convertJSON } from 'simple-datatables/dist/dts/convert';
8+
export { exportCSV, exportJSON, exportSQL, exportTXT } from 'simple-datatables/dist/dts/export';
9+
export { createElement, isJson, isObject } from 'simple-datatables/dist/dts/helpers';
10+
export { makeEditable } from 'simple-datatables/dist/dts/editing';
11+
export { addColumnFilter } from 'simple-datatables/dist/dts/column_filter';
12+
13+
export type {
14+
DataTableOptions,
15+
DataTableConfiguration,
16+
ColumnOption,
17+
cellType,
18+
inputCellType,
19+
dataRowType,
20+
inputRowType,
21+
headerCellType,
22+
inputHeaderCellType,
23+
TableDataType,
24+
DataOption,
25+
renderType,
26+
nodeType,
27+
elementNodeType,
28+
textNodeType,
29+
cellDataType
30+
} from 'simple-datatables/dist/dts/datatable';
31+
32+
export interface SelectableDataRow {
33+
selected?: boolean;
34+
[key: string]: any;
35+
}
36+
}
37+
38+
export {};

src/routes/+page.svelte

Lines changed: 13 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,56 +9,36 @@
99
Card,
1010
Helper,
1111
Label,
12-
Fileupload,
13-
Textarea,
14-
Table
12+
Fileupload
1513
} from 'flowbite-svelte';
14+
import { Table } from '@flowbite-svelte-plugins/datatable';
1615
import { ArrowUpRightFromSquareOutline, MoonOutline, SunOutline } from 'flowbite-svelte-icons';
1716
import { ZipReader, BlobReader } from '@zip.js/zip.js';
1817
1918
let fileuploadRef = $state() as HTMLInputElement;
20-
let textareaRef = $state() as HTMLTextAreaElement;
2119
let files: FileList | null = $state(null);
2220
2321
let reader;
2422
let allFiles;
25-
let textureFiles;
26-
let filteredBlocksText = $state('');
23+
24+
let textureFiles = $state.raw([]);
25+
let tableItems = $derived.by(() => {
26+
// return textureFiles.map((file) => ({ filename: file.filename }));
27+
return [{ length: textureFiles.length }];
28+
// return [{ name: 'example1' }, { name: 'example2' }].map((file) => ({ filename: file.name }));
29+
});
2730
2831
function handleOnChange(event: Event) {
2932
// console.log(files[0]);
3033
loadFile(files[0]);
3134
}
3235
33-
function formatFilesForTable(files) {
34-
return files.map((file) => ({ filename: file.filename }));
35-
}
36-
37-
let items = $state([]);
36+
$inspect(textureFiles, tableItems);
3837
3938
async function loadFile(file) {
40-
reader = await new ZipReader(new BlobReader(file));
41-
// fileSizeString = `${Math.floor(reader.reader.size / 1e6)} MB`;
39+
reader = new ZipReader(new BlobReader(file));
4240
allFiles = await reader.getEntries();
43-
44-
// console.log(allFiles);
45-
46-
textureFiles = allFiles.filter(filterTextures);
47-
// let totalTextures = textureFiles.length;
48-
textureFiles = textureFiles.filter(filterBlocks);
49-
// let totalBlocks = textureFiles.length;
50-
51-
// console.log(textureFiles);
52-
53-
filteredBlocksText = textureFiles
54-
.reduce((accumulator, currentValue) => {
55-
return `${accumulator}${currentValue.filename}\n`;
56-
}, '')
57-
.trim();
58-
59-
items = formatFilesForTable(textureFiles);
60-
61-
// fileInfoElement.innerText = `JAR size: ${fileSizeString}, All textures: ${totalTextures}, Block textures: ${totalBlocks}`;
41+
textureFiles = allFiles.filter(filterTextures).filter(filterBlocks);
6242
}
6343
6444
function filterTextures(file) {
@@ -120,20 +100,8 @@
120100
/>
121101
</Card>
122102

123-
<Card class="flex max-w-xl gap-2 p-4">
124-
<Label for="blocklist_display">Textures:</Label>
125-
<Textarea
126-
id="blocklist_display"
127-
bind:value={filteredBlocksText}
128-
bind:elementRef={textareaRef}
129-
rows={10}
130-
class="w-full"
131-
spellcheck="false"
132-
/>
133-
</Card>
134-
135103
<Card class="max-w-xl gap-2 p-4">
136-
<Table {items}></Table>
104+
<Table items={tableItems}></Table>
137105
</Card>
138106
</div>
139107
</div>

svelte.config.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ import adapter from '@sveltejs/adapter-static';
22

33
/** @type {import('@sveltejs/kit').Config} */
44
const config = {
5+
compilerOptions: {
6+
experimental: {
7+
async: true
8+
}
9+
},
510
kit: {
611
adapter: adapter({
712
fallback: '404.html'

0 commit comments

Comments
 (0)