Add File System Example
This commit is contained in:
parent
eb31b843e2
commit
3955b2e342
85
src/components/FsExample.vue
Normal file
85
src/components/FsExample.vue
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div v-if="error">
|
||||||
|
There was an error attempting to read from the file system.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
data-test="fs-example-button"
|
||||||
|
@click="getCurrentDirectory"
|
||||||
|
>
|
||||||
|
<template v-if="!error">
|
||||||
|
Click for File System example
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
Try again for File System example
|
||||||
|
</template>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<template v-if="contents">
|
||||||
|
<p>
|
||||||
|
The contents of the current working directory:
|
||||||
|
</p>
|
||||||
|
<div class="contents">
|
||||||
|
<div
|
||||||
|
v-for="(file, fileIndex) in contents"
|
||||||
|
class="file"
|
||||||
|
:key="'file' + fileIndex"
|
||||||
|
>
|
||||||
|
{{ file }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'FsExample',
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
contents: null,
|
||||||
|
error: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getCurrentDirectory: function () {
|
||||||
|
const fs = window.nw.require('fs');
|
||||||
|
try {
|
||||||
|
this.contents = fs.readdirSync('.');
|
||||||
|
this.error = false;
|
||||||
|
} catch (err) {
|
||||||
|
this.error = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
button {
|
||||||
|
background: linear-gradient(0deg, #2EB277, #65E6AC);
|
||||||
|
border-width: 3.4px;
|
||||||
|
border-color: #35495E;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 22px 0px 6px 0px;
|
||||||
|
padding: 11px 17px;
|
||||||
|
color: #050709;
|
||||||
|
font-family: 'Trebuchet MS', Verdana, sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: wrap;
|
||||||
|
}
|
||||||
|
.file {
|
||||||
|
flex-grow: 1;
|
||||||
|
min-width: 200px;
|
||||||
|
background: #DDD;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 11px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -37,17 +37,23 @@
|
|||||||
|
|
||||||
<h3>Ecosystem</h3>
|
<h3>Ecosystem</h3>
|
||||||
<LinkList :links="ecosystemLinks" />
|
<LinkList :links="ecosystemLinks" />
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<FsExample />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
|
||||||
|
import FsExample from '@/components/FsExample.vue';
|
||||||
import LinkList from '@/components/LinkList.vue';
|
import LinkList from '@/components/LinkList.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'HelloWorld',
|
name: 'HelloWorld',
|
||||||
components: {
|
components: {
|
||||||
|
FsExample,
|
||||||
LinkList
|
LinkList
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@ -157,7 +163,7 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
devMode: function () {
|
devMode: function () {
|
||||||
return window.process.env.NODE_ENV === 'development';
|
return window.process.versions['nw-flavor'] === 'sdk';
|
||||||
},
|
},
|
||||||
versions: function () {
|
versions: function () {
|
||||||
return window.process.versions;
|
return window.process.versions;
|
||||||
|
Loading…
Reference in New Issue
Block a user