635621b04a
* feat: separate flow for folder and file uploads * feat: add basic index document detection * feat(wip): separate preview step * fix: fix kb and mb units * feat: add post upload summary, add some styling * feat: upload flow * fix: change element order and add conditional rendering * refactor: remove unused variables for now * fix: put back stamp creation to stamp page * refactor: rework postage stamps and grid * feat: add website and folder icons * feat: add asset preview to download flow, add file icon * feat: add basic design to postage stamp selection dialog * feat: add web icon, shorten stamp in preview * feat: extract swarm hash in download flow * fix: extract swarmbutton and solve icon hover and focus color * fix: always show buy button on stamp page * refactor: downgrade * refactor: speed up icon transition * style: improve download buttons * style: change [back to upload] icon * style: add spacing before swarm gateway text * style: post upload summary spacing * refactor: drop verticalspacing and use box * refactor: merge icons to one component * refactor: use conditions instead of weird assignment * docs: explain filter(x => x) * refactor: generalize capacity * refactor: avoid passing arrow functions * refactor: get rid of PaperGridContainer and Container * fix: fix hover color for postage stamps * feat: add disabled and loading state to buttons * fix: make drag and drop work for websites * feat: handle folders and non existing hashes * fix: provide empty default value to select to avoid console warning * style: remove body2 font variants * fix: remove typo * feat: disable folder upload, add website upload * fix: disable showPreviews to avoid flickering * feat(temp): remove folder upload * fix: remove stuck focus on buttons even after rendering different buttons * style: merge hover and focus styles, fix safari text wrap issue * style: remove dropbox outline in safari
25 lines
663 B
TypeScript
25 lines
663 B
TypeScript
export class SwarmFile {
|
|
public name: string
|
|
public path: string
|
|
public type: string
|
|
public size: number
|
|
public webkitRelativePath: string
|
|
public arrayBuffer: () => Promise<ArrayBuffer>
|
|
private data: Promise<ArrayBuffer>
|
|
|
|
constructor(file: File) {
|
|
const path = Reflect.get(file, 'path') || file.webkitRelativePath || file.name
|
|
this.path = path.startsWith('/') ? path.slice(1) : path
|
|
this.webkitRelativePath = this.path
|
|
this.name = file.name
|
|
this.type = file.type
|
|
this.size = file.size
|
|
this.data = file.arrayBuffer()
|
|
this.arrayBuffer = async () => {
|
|
const data = await this.data
|
|
|
|
return data
|
|
}
|
|
}
|
|
}
|