diff --git a/css.loaderOptions.sass b/css.loaderOptions.sass new file mode 100644 index 0000000..dcca4c2 --- /dev/null +++ b/css.loaderOptions.sass @@ -0,0 +1 @@ +css.loaderOptions.sass \ No newline at end of file diff --git a/package.json b/package.json index a4bf694..6bd176f 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,8 @@ "onion-regex": "2.0.8", "pinia": "2.0.28", "pinia-plugin-persistedstate-2": "2.0.8", + "pinia-shared-state": "0.2.10", + "postcss-apply": "0.12.0", "requests": "0.3.0", "socks-proxy-agent": "7.0.0", "stream-browserify": "3.0.0", @@ -70,7 +72,9 @@ "json-server": "0.17.1", "mini-css-extract-plugin": "2.7.2", "node-polyfill-webpack-plugin": "2.0.1", + "node-sass": "8.0.0", "postcss": "8.4.20", + "postcss-loader": "7.0.2", "postcss-preset-env": "7.8.3", "sass": "1.56.1", "sass-loader": "13.2.0", diff --git a/postcss.config.js b/postcss.config.js index 413ff0b..b2ec7f0 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,8 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - } +module.exports = { + plugins: [ + require('postcss-import'), + require('tailwindcss'), + require('autoprefixer'), + require('postcss-apply') + ] } \ No newline at end of file diff --git a/src/components/TaskManager.vue b/src/components/TaskManager.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/components/relays/ListClearnet.vue b/src/components/relays/ListClearnet.vue index 684d886..b75eb5d 100644 --- a/src/components/relays/ListClearnet.vue +++ b/src/components/relays/ListClearnet.vue @@ -41,7 +41,7 @@ - + @@ -64,17 +64,26 @@ {{ results[relay]?.latency?.final }}ms + + - + - + - + @@ -186,6 +195,8 @@ return { loaded: this.results[relay]?.state == 'complete', 'bg-slate-100': index % 2, + 'bg-red-50 hover:bg-red-100': this.store.relays.isFavorite(relay), + 'bg-gray-50 hover:bg-slate-200': !this.store.relays.isFavorite(relay), } } }, @@ -194,13 +205,15 @@ }, getIndicatorClass(){ return (relay, key) => { - let cl = this.results[relay]?.check?.[key] === true - ? 'success' - : this.results[relay]?.check?.[key] === false - ? 'failure' - : 'pending' - return `indicator ${cl}` - } + return { + // 'bg-green-500': this.results[relay]?.check?.[key] !== false, + // 'bg-red-500': this.results[relay]?.check?.[key] === false, + // 'bg-gray-500': 'undefined' === typeof this.results[relay]?.check?.[key] + 'success': this.results[relay]?.check?.[key] !== false, + 'failure': this.results[relay]?.check?.[key] === false, + 'pending': 'undefined' === typeof this.results[relay]?.check?.[key] + } + } }, generateKey(){ return (url, key) => crypto.createHash('md5').update(`${url}_${key}`).digest('hex') @@ -243,8 +256,16 @@ methods: Object.assign(RelaysLib, localMethods), }) + +