diff --git a/Taskfile.yml b/Taskfile.yml index 28f36dd..ac286ae 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -77,6 +77,7 @@ tasks: cmds: - yarn - yarn build + - yarn run vue-tsc --noEmit docker: desc: Build budgeeter:latest diff --git a/web/package.json b/web/package.json index 2f82f7c..36f3f5d 100644 --- a/web/package.json +++ b/web/package.json @@ -26,7 +26,8 @@ "@vue/cli-service": "5.0.0-beta.7", "sass": "^1.38.0", "sass-loader": "^10.0.0", + "typescript": "^4.5.5", "vite": "^2.7.2", - "vue-cli-plugin-vuetify": "~2.4.5" + "vue-tsc": "^0.32.0" } } diff --git a/web/src/components/DateInput.vue b/web/src/components/DateInput.vue index 2b3d3a2..fbe9d2a 100644 --- a/web/src/components/DateInput.vue +++ b/web/src/components/DateInput.vue @@ -3,6 +3,8 @@ const props = defineProps(["modelValue"]); const emit = defineEmits(['update:modelValue']); function dateToYYYYMMDD(d: Date) : string { + if(d == null) + return ""; // alternative implementations in https://stackoverflow.com/q/23593052/1850609 //return new Date(d.getTime() - (d.getTimezoneOffset() * 60 * 1000)).toISOString().split('T')[0]; return d.toISOString().split('T')[0]; diff --git a/web/src/components/TransactionEditRow.vue b/web/src/components/TransactionEditRow.vue index e66a913..07eaaf0 100644 --- a/web/src/components/TransactionEditRow.vue +++ b/web/src/components/TransactionEditRow.vue @@ -3,6 +3,7 @@ import { computed, ref } from "vue"; import Autocomplete from './Autocomplete.vue' import { useAccountStore } from '../stores/budget-account' import DateInput from "./DateInput.vue"; +import { useTransactionsStore } from "../stores/transactions"; const props = defineProps<{ transactionid: string @@ -10,8 +11,8 @@ const props = defineProps<{ const emit = defineEmits(["save"]); -const accountStore = useAccountStore(); -const TX = accountStore.Transactions.get(props.transactionid)!; +const transactionsStore = useTransactionsStore(); +const TX = transactionsStore.Transactions.get(props.transactionid)!; const payeeType = ref(undefined); const payload = computed(() => JSON.stringify({ @@ -29,7 +30,7 @@ const payload = computed(() => JSON.stringify({ function saveTransaction(e: MouseEvent) { e.preventDefault(); - accountStore.editTransaction(TX.ID, payload.value); + transactionsStore.editTransaction(TX.ID, payload.value); emit('save'); } diff --git a/web/src/components/TransactionInputRow.vue b/web/src/components/TransactionInputRow.vue index 007eccf..9eb3da8 100644 --- a/web/src/components/TransactionInputRow.vue +++ b/web/src/components/TransactionInputRow.vue @@ -1,7 +1,7 @@ diff --git a/web/src/components/TransactionRow.vue b/web/src/components/TransactionRow.vue index a022774..b182273 100644 --- a/web/src/components/TransactionRow.vue +++ b/web/src/components/TransactionRow.vue @@ -1,50 +1,53 @@