diff --git a/src/components/desktop/ColorSelect.vue b/src/components/desktop/ColorSelect.vue
new file mode 100644
index 00000000..d35ac6f9
--- /dev/null
+++ b/src/components/desktop/ColorSelect.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/desktop/IconSelect.vue b/src/components/desktop/IconSelect.vue
new file mode 100644
index 00000000..d9944413
--- /dev/null
+++ b/src/components/desktop/IconSelect.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/desktop-main.js b/src/desktop-main.js
index 83212db6..ad2ee30a 100644
--- a/src/desktop-main.js
+++ b/src/desktop-main.js
@@ -39,6 +39,7 @@ import { VSnackbar } from 'vuetify/components/VSnackbar';
import { VSwitch } from 'vuetify/components/VSwitch';
import { VTabs, VTab } from 'vuetify/components/VTabs';
import { VTable } from 'vuetify/components/VTable';
+import { VTextarea } from 'vuetify/components/VTextarea';
import { VTextField } from 'vuetify/components/VTextField';
import { VToolbar } from 'vuetify/components/VToolbar';
import { VTooltip } from 'vuetify/components/VTooltip';
@@ -82,6 +83,8 @@ import PinCodeInput from '@/components/common/PinCodeInput.vue';
import ItemIcon from '@/components/desktop/ItemIcon.vue';
import BtnVerticalGroup from '@/components/desktop/BtnVerticalGroup.vue';
import AmountInput from '@/components/desktop/AmountInput.vue';
+import ColorSelect from '@/components/desktop/ColorSelect.vue';
+import IconSelect from '@/components/desktop/IconSelect.vue';
import StepsBar from '@/components/desktop/StepsBar.vue';
import ConfirmDialog from '@/components/desktop/ConfirmDialog.vue';
import SnackBar from '@/components/desktop/SnackBar.vue';
@@ -162,6 +165,7 @@ const vuetify = createVuetify({
VTabs,
VTab,
VTable,
+ VTextarea,
VTextField,
VToolbar,
VTooltip,
@@ -392,6 +396,8 @@ app.component('PinCodeInput', PinCodeInput);
app.component('ItemIcon', ItemIcon);
app.component('BtnVerticalGroup', BtnVerticalGroup);
app.component('AmountInput', AmountInput);
+app.component('ColorSelect', ColorSelect);
+app.component('IconSelect', IconSelect);
app.component('StepsBar', StepsBar);
app.component('ConfirmDialog', ConfirmDialog);
app.component('SnackBar', SnackBar);
diff --git a/src/lib/ui.desktop.js b/src/lib/ui.desktop.js
index b9a868fa..306a707f 100644
--- a/src/lib/ui.desktop.js
+++ b/src/lib/ui.desktop.js
@@ -19,19 +19,24 @@ export function getCssValue(element, name) {
return computedStyle.getPropertyValue(name);
}
-export function scrollToMenuListItem(listContentEl) {
- if (!listContentEl) {
+export function scrollToSelectedItem(parentEl, containerSelector, selectedItemSelector) {
+ if (!parentEl) {
return;
}
- const lists = listContentEl.querySelectorAll('div.v-list');
+ let container = parentEl;
- if (!lists.length || !lists[0]) {
- return;
+ if (containerSelector) {
+ const lists = parentEl.querySelectorAll(containerSelector);
+
+ if (!lists.length || !lists[0]) {
+ return;
+ }
+
+ container = lists[0];
}
- const container = lists[0];
- const selectedItems = container.querySelectorAll('div.v-list-item.list-item-selected');
+ const selectedItems = container.querySelectorAll(selectedItemSelector);
if (!selectedItems.length || !selectedItems[0]) {
return;
diff --git a/src/views/desktop/categories/ListPage.vue b/src/views/desktop/categories/ListPage.vue
index cf1d97d3..2d660863 100644
--- a/src/views/desktop/categories/ListPage.vue
+++ b/src/views/desktop/categories/ListPage.vue
@@ -170,7 +170,8 @@
-
+
@@ -178,7 +179,8 @@
diff --git a/src/views/desktop/transactions/ListPage.vue b/src/views/desktop/transactions/ListPage.vue
index d5478af7..897646e9 100644
--- a/src/views/desktop/transactions/ListPage.vue
+++ b/src/views/desktop/transactions/ListPage.vue
@@ -351,7 +351,7 @@ import {
categoryTypeToTransactionType,
transactionTypeToCategoryType
} from '@/lib/category.js';
-import { scrollToMenuListItem } from '@/lib/ui.desktop.js';
+import { scrollToSelectedItem } from '@/lib/ui.desktop.js';
import {
mdiMagnify,
@@ -816,7 +816,7 @@ export default {
},
scrollMenuToSelectedItem(menu) {
this.$nextTick(() => {
- scrollToMenuListItem(menu.contentEl);
+ scrollToSelectedItem(menu.contentEl, 'div.v-list', 'div.v-list-item.list-item-selected');
});
},
getDisplayTime(transaction) {