diff --git a/package-lock.json b/package-lock.json
index 0927b8f2..668b4eaf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12104,11 +12104,6 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
"integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
},
- "vue-async-computed": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/vue-async-computed/-/vue-async-computed-3.8.2.tgz",
- "integrity": "sha512-If5roOhp/x0WWd0TWRD77YsuFoiIw3MbkcRlIB/FE3TqQCPje52eQp5CV5NN/7B0VAyPuGX5JQa+rc9AOcGAYw=="
- },
"vue-cli-plugin-vuetify": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.0.5.tgz",
diff --git a/package.json b/package.json
index de264d17..ed0fb7ad 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,6 @@
"register-service-worker": "^1.7.1",
"roboto-fontface": "*",
"vue": "^2.6.11",
- "vue-async-computed": "^3.8.2",
"vue-cryptojs": "^2.1.4",
"vue-router": "^3.1.6",
"vuetify": "^2.2.11",
diff --git a/src/App.vue b/src/App.vue
index ea6e9dce..f717d7c6 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -89,6 +89,13 @@
child: [
{icon: 'fa-calendar', text: 'Date/Time converter', link: '/date-converter'},
],
+ },
+ {
+ title: 'Web',
+ child: [
+ {icon: 'fa-link', text: 'URL encode/decode', link: '/url-encoder'},
+ {icon: 'fa-file-image-o', text: 'File to Base64', link: '/file-to-base64'},
+ ],
}
],
}),
@@ -100,7 +107,7 @@
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 40a2dd68..ad09c198 100644
--- a/src/main.js
+++ b/src/main.js
@@ -5,7 +5,6 @@ import router from './router'
import vuetify from './plugins/vuetify'
import 'roboto-fontface/css/roboto/roboto-fontface.css'
import 'font-awesome/css/font-awesome.css'
-import './plugins/async-computed'
import './plugins/crypto-js'
import './plugins/toast-snackbar'
diff --git a/src/plugins/async-computed.js b/src/plugins/async-computed.js
deleted file mode 100644
index c085eab6..00000000
--- a/src/plugins/async-computed.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import Vue from 'vue';
-import AsyncComputed from 'vue-async-computed'
-
-Vue.use(AsyncComputed)
diff --git a/src/router.js b/src/router.js
index e0a48333..32829c57 100644
--- a/src/router.js
+++ b/src/router.js
@@ -1,9 +1,11 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './routes/Home.vue'
-import TokenGenerator from "./components/TokenGenerator";
-import Hash from "./components/Hash";
-import DateConverter from "./components/DateConverter";
+import TokenGenerator from "./routes/tools/TokenGenerator";
+import Hash from "./routes/tools/Hash";
+import DateConverter from "./routes/tools/DateConverter";
+import UrlEncoder from "./routes/tools/UrlEncoder";
+import FileToBase64 from "./routes/tools/FileToBase64";
Vue.use(VueRouter)
@@ -24,6 +26,14 @@ const routes = [
path: '/date-converter',
component: DateConverter
},
+ {
+ path: '/url-encoder',
+ component: UrlEncoder
+ },
+ {
+ path: '/file-to-base64',
+ component: FileToBase64
+ },
{
path: '/about',
name: 'About',
diff --git a/src/components/DateConverter.vue b/src/routes/tools/DateConverter.vue
similarity index 97%
rename from src/components/DateConverter.vue
rename to src/routes/tools/DateConverter.vue
index fcc96f0e..d9737805 100644
--- a/src/components/DateConverter.vue
+++ b/src/routes/tools/DateConverter.vue
@@ -1,6 +1,6 @@
-
+
Input
@@ -37,7 +37,7 @@
-
+
Dates formats
@@ -61,7 +61,7 @@
+
+
\ No newline at end of file
diff --git a/src/components/Hash.vue b/src/routes/tools/Hash.vue
similarity index 97%
rename from src/components/Hash.vue
rename to src/routes/tools/Hash.vue
index c1812b95..0270da29 100644
--- a/src/components/Hash.vue
+++ b/src/routes/tools/Hash.vue
@@ -30,7 +30,7 @@
+
+
\ No newline at end of file
diff --git a/src/utils/helpers.js b/src/utils/helpers.js
index d8694539..0da2c304 100644
--- a/src/utils/helpers.js
+++ b/src/utils/helpers.js
@@ -8,6 +8,11 @@ const copyToClipboard = (text) => {
return result;
}
+const fileIsImage = (file) => {
+ return file.type.split('/')[0] === 'image';
+}
+
export {
- copyToClipboard
+ copyToClipboard,
+ fileIsImage
}
\ No newline at end of file