chore: add prettier frontent linter

This commit is contained in:
Oleg Lobanov
2021-03-21 12:51:58 +01:00
parent a721dc1f31
commit c44b37c50c
73 changed files with 18898 additions and 4499 deletions

View File

@@ -1,132 +1,138 @@
<template>
<div>
<ul class="file-list">
<li @click="itemClick"
<li
@click="itemClick"
@touchstart="touchstart"
@dblclick="next"
role="button"
tabindex="0"
:aria-label="item.name"
:aria-selected="selected == item.url"
:key="item.name" v-for="item in items"
:data-url="item.url">{{ item.name }}</li>
:key="item.name"
v-for="item in items"
:data-url="item.url"
>
{{ item.name }}
</li>
</ul>
<p>{{ $t('prompts.currentlyNavigating') }} <code>{{ nav }}</code>.</p>
<p>
{{ $t("prompts.currentlyNavigating") }} <code>{{ nav }}</code
>.
</p>
</div>
</template>
<script>
import { mapState } from 'vuex'
import url from '@/utils/url'
import { files } from '@/api'
import { mapState } from "vuex";
import url from "@/utils/url";
import { files } from "@/api";
export default {
name: 'file-list',
name: "file-list",
data: function () {
return {
items: [],
touches: {
id: '',
count: 0
id: "",
count: 0,
},
selected: null,
current: window.location.pathname
}
current: window.location.pathname,
};
},
computed: {
...mapState([ 'req', 'user' ]),
nav () {
return decodeURIComponent(this.current)
}
...mapState(["req", "user"]),
nav() {
return decodeURIComponent(this.current);
},
},
mounted () {
this.fillOptions(this.req)
mounted() {
this.fillOptions(this.req);
},
methods: {
fillOptions (req) {
fillOptions(req) {
// Sets the current path and resets
// the current items.
this.current = req.url
this.items = []
this.current = req.url;
this.items = [];
this.$emit('update:selected', this.current)
this.$emit("update:selected", this.current);
// If the path isn't the root path,
// show a button to navigate to the previous
// directory.
if (req.url !== '/files/') {
if (req.url !== "/files/") {
this.items.push({
name: '..',
url: url.removeLastDir(req.url) + '/'
})
name: "..",
url: url.removeLastDir(req.url) + "/",
});
}
// If this folder is empty, finish here.
if (req.items === null) return
if (req.items === null) return;
// Otherwise we add every directory to the
// move options.
for (let item of req.items) {
if (!item.isDir) continue
if (!item.isDir) continue;
this.items.push({
name: item.name,
url: item.url
})
url: item.url,
});
}
},
next: function (event) {
// Retrieves the URL of the directory the user
// just clicked in and fill the options with its
// content.
let uri = event.currentTarget.dataset.url
let uri = event.currentTarget.dataset.url;
files.fetch(uri)
.then(this.fillOptions)
.catch(this.$showError)
files.fetch(uri).then(this.fillOptions).catch(this.$showError);
},
touchstart (event) {
let url = event.currentTarget.dataset.url
touchstart(event) {
let url = event.currentTarget.dataset.url;
// In 300 milliseconds, we shall reset the count.
setTimeout(() => {
this.touches.count = 0
}, 300)
this.touches.count = 0;
}, 300);
// If the element the user is touching
// is different from the last one he touched,
// reset the count.
if (this.touches.id !== url) {
this.touches.id = url
this.touches.count = 1
return
this.touches.id = url;
this.touches.count = 1;
return;
}
this.touches.count++
this.touches.count++;
// If there is more than one touch already,
// open the next screen.
if (this.touches.count > 1) {
this.next(event)
this.next(event);
}
},
itemClick: function (event) {
if (this.user.singleClick) this.next(event)
else this.select(event)
if (this.user.singleClick) this.next(event);
else this.select(event);
},
select: function (event) {
// If the element is already selected, unselect it.
if (this.selected === event.currentTarget.dataset.url) {
this.selected = null
this.$emit('update:selected', this.current)
return
this.selected = null;
this.$emit("update:selected", this.current);
return;
}
// Otherwise select the element.
this.selected = event.currentTarget.dataset.url
this.$emit('update:selected', this.selected)
}
}
}
this.selected = event.currentTarget.dataset.url;
this.$emit("update:selected", this.selected);
},
},
};
</script>