Refactor common components into separate directory.
Build and Deploy Web App / build-and-deploy (push) Successful in 23s Details

This commit is contained in:
andrewlalis 2025-09-06 15:26:23 -04:00
parent 1b32925add
commit c2fef7edde
31 changed files with 72 additions and 71 deletions

View File

@ -1,13 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, useTemplateRef, type Ref } from 'vue'; import { ref, useTemplateRef, type Ref } from 'vue';
import AppForm from './form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormControl from './form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import FormGroup from './form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import ModalWrapper from './ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import { AccountApiClient, AccountValueRecordType, type Account, type AccountValueRecord, type AccountValueRecordCreationPayload } from '@/api/account'; import { AccountApiClient, AccountValueRecordType, type Account, type AccountValueRecord, type AccountValueRecordCreationPayload } from '@/api/account';
import { datetimeLocalToISO, getDatetimeLocalValueForNow } from '@/util/time'; import { datetimeLocalToISO, getDatetimeLocalValueForNow } from '@/util/time';
import FileSelector from './FileSelector.vue'; import FileSelector from '@/components/common/FileSelector.vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
const route = useRoute() const route = useRoute()

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import type { TransactionCategoryTree } from '@/api/transaction'; import type { TransactionCategoryTree } from '@/api/transaction';
import AppButton from './AppButton.vue'; import AppButton from './common/AppButton.vue';
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
const props = defineProps<{ const props = defineProps<{

View File

@ -1,11 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { TransactionApiClient, type TransactionCategory } from '@/api/transaction'; import { TransactionApiClient, type TransactionCategory } from '@/api/transaction';
import ModalWrapper from './ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import { ref, useTemplateRef, type Ref } from 'vue'; import { ref, useTemplateRef, type Ref } from 'vue';
import AppForm from './form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormGroup from './form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import FormControl from './form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import CategorySelect from './CategorySelect.vue'; import CategorySelect from './CategorySelect.vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';

View File

@ -1,11 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, useTemplateRef } from 'vue'; import { ref, useTemplateRef } from 'vue';
import AppForm from './form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormControl from './form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import FormGroup from './form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import ModalWrapper from './ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import { TransactionApiClient, type TransactionVendor } from '@/api/transaction'; import { TransactionApiClient, type TransactionVendor } from '@/api/transaction';
import AppButton from './AppButton.vue'; import AppButton from './common/AppButton.vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';

View File

@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useTemplateRef } from 'vue'; import { useTemplateRef } from 'vue';
import ModalWrapper from './ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
const globalAlertModal = useTemplateRef('global-alert-modal') const globalAlertModal = useTemplateRef('global-alert-modal')
</script> </script>

View File

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import ButtonBar from '@/components/ButtonBar.vue'; import ButtonBar from '@/components/common/ButtonBar.vue';
defineProps<{ title: string }>() defineProps<{ title: string }>()

View File

@ -5,11 +5,11 @@ modal for adding a new one.
--> -->
<script setup lang="ts"> <script setup lang="ts">
import { type TransactionCategoryTree, type TransactionDetailLineItem } from '@/api/transaction'; import { type TransactionCategoryTree, type TransactionDetailLineItem } from '@/api/transaction';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import FormGroup from './form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import { formatMoney, type Currency } from '@/api/data'; import { formatMoney, type Currency } from '@/api/data';
import ModalWrapper from './ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import FormControl from './form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import { ref, type Ref, useTemplateRef } from 'vue'; import { ref, type Ref, useTemplateRef } from 'vue';
import CategorySelect from './CategorySelect.vue'; import CategorySelect from './CategorySelect.vue';

View File

@ -8,6 +8,7 @@
<style lang="css"> <style lang="css">
.button-bar { .button-bar {
display: flex; display: flex;
flex-wrap: wrap;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
} }

View File

@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useTemplateRef } from 'vue'; import { useTemplateRef } from 'vue';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import ModalWrapper from './ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
const modal = useTemplateRef('modal') const modal = useTemplateRef('modal')

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref, useTemplateRef, watch, type Ref } from 'vue'; import { onMounted, ref, useTemplateRef, watch, type Ref } from 'vue';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
interface ExistingFile { interface ExistingFile {
id: number id: number

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, type Ref } from 'vue'; import { ref, type Ref } from 'vue';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
defineProps<{ id?: string }>() defineProps<{ id?: string }>()

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Page, PageRequest } from '@/api/pagination'; import type { Page, PageRequest } from '@/api/pagination';
import AppButton from './AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
const props = defineProps<{ page?: Page<unknown> }>() const props = defineProps<{ page?: Page<unknown> }>()

View File

@ -1,10 +1,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { AccountApiClient, type AccountHistoryValueRecordItem } from '@/api/account'; import { AccountApiClient, type AccountHistoryValueRecordItem } from '@/api/account';
import { formatMoney } from '@/api/data'; import { formatMoney } from '@/api/data';
import AppButton from '../AppButton.vue'; import AppButton from '../common/AppButton.vue';
import { showConfirm } from '@/util/alert'; import { showConfirm } from '@/util/alert';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import ButtonBar from '../ButtonBar.vue'; import ButtonBar from '../common/ButtonBar.vue';
const route = useRoute() const route = useRoute()

View File

@ -3,9 +3,9 @@ import { AccountApiClient, type Account } from '@/api/account';
import { formatMoney } from '@/api/data'; import { formatMoney } from '@/api/data';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import AddValueRecordModal from '@/components/AddValueRecordModal.vue'; import AddValueRecordModal from '@/components/AddValueRecordModal.vue';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import ButtonBar from '@/components/ButtonBar.vue'; import ButtonBar from '@/components/common/ButtonBar.vue';
import AccountHistory from '@/components/history/AccountHistory.vue'; import AccountHistory from '@/components/history/AccountHistory.vue';
import PropertiesTable from '@/components/PropertiesTable.vue'; import PropertiesTable from '@/components/PropertiesTable.vue';
import { showConfirm } from '@/util/alert'; import { showConfirm } from '@/util/alert';

View File

@ -1,9 +1,9 @@
<script setup lang="ts"> <script setup lang="ts">
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import { TransactionApiClient, type TransactionCategory, type TransactionCategoryTree } from '@/api/transaction'; import { TransactionApiClient, type TransactionCategory, type TransactionCategoryTree } from '@/api/transaction';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import ButtonBar from '@/components/ButtonBar.vue'; import ButtonBar from '@/components/common/ButtonBar.vue';
import CategoryDisplayItem from '@/components/CategoryDisplayItem.vue'; import CategoryDisplayItem from '@/components/CategoryDisplayItem.vue';
import EditCategoryModal from '@/components/EditCategoryModal.vue'; import EditCategoryModal from '@/components/EditCategoryModal.vue';
import { showConfirm } from '@/util/alert'; import { showConfirm } from '@/util/alert';

View File

@ -1,10 +1,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { AuthApiClient } from '@/api/auth'; import { AuthApiClient } from '@/api/auth';
import { ApiError } from '@/api/base'; import { ApiError } from '@/api/base';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppForm from '@/components/form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormControl from '@/components/form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import FormGroup from '@/components/form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import { useAuthStore } from '@/stores/auth-store'; import { useAuthStore } from '@/stores/auth-store';
import { showAlert } from '@/util/alert'; import { showAlert } from '@/util/alert';
import { hideLoader, showLoader } from '@/util/loader'; import { hideLoader, showLoader } from '@/util/loader';

View File

@ -1,12 +1,12 @@
<script setup lang="ts"> <script setup lang="ts">
import { AuthApiClient } from '@/api/auth'; import { AuthApiClient } from '@/api/auth';
import { ApiError } from '@/api/base'; import { ApiError } from '@/api/base';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import AppForm from '@/components/form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormControl from '@/components/form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import FormGroup from '@/components/form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import ModalWrapper from '@/components/ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import { useAuthStore } from '@/stores/auth-store'; import { useAuthStore } from '@/stores/auth-store';
import { showAlert, showConfirm } from '@/util/alert'; import { showAlert, showConfirm } from '@/util/alert';
import { hideLoader, showLoader } from '@/util/loader'; import { hideLoader, showLoader } from '@/util/loader';

View File

@ -1,8 +1,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { ProfileApiClient, type Profile } from '@/api/profile'; import { ProfileApiClient, type Profile } from '@/api/profile';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import ModalWrapper from '@/components/ModalWrapper.vue'; import ModalWrapper from '@/components/common/ModalWrapper.vue';
import { onMounted, type Ref, ref, useTemplateRef } from 'vue'; import { onMounted, type Ref, ref, useTemplateRef } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
const router = useRouter() const router = useRouter()

View File

@ -3,8 +3,8 @@ import { ApiError } from '@/api/base';
import { formatMoney } from '@/api/data'; import { formatMoney } from '@/api/data';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import { TransactionApiClient, type TransactionDetail } from '@/api/transaction'; import { TransactionApiClient, type TransactionDetail } from '@/api/transaction';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import CategoryLabel from '@/components/CategoryLabel.vue'; import CategoryLabel from '@/components/CategoryLabel.vue';
import PropertiesTable from '@/components/PropertiesTable.vue'; import PropertiesTable from '@/components/PropertiesTable.vue';
import TagLabel from '@/components/TagLabel.vue'; import TagLabel from '@/components/TagLabel.vue';

View File

@ -1,9 +1,9 @@
<script setup lang="ts"> <script setup lang="ts">
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import { TransactionApiClient, type TransactionVendor } from '@/api/transaction'; import { TransactionApiClient, type TransactionVendor } from '@/api/transaction';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import ButtonBar from '@/components/ButtonBar.vue'; import ButtonBar from '@/components/common/ButtonBar.vue';
import EditVendorModal from '@/components/EditVendorModal.vue'; import EditVendorModal from '@/components/EditVendorModal.vue';
import { showConfirm } from '@/util/alert'; import { showConfirm } from '@/util/alert';
import { onMounted, ref, useTemplateRef, type Ref } from 'vue'; import { onMounted, ref, useTemplateRef, type Ref } from 'vue';

View File

@ -1,11 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { AccountApiClient, AccountTypes, type Account, type AccountType } from '@/api/account'; import { AccountApiClient, AccountTypes, type Account, type AccountType } from '@/api/account';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import AppForm from '@/components/form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormActions from '@/components/form/FormActions.vue'; import FormActions from '@/components/common/form/FormActions.vue';
import FormControl from '@/components/form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import FormGroup from '@/components/form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import { computed, onMounted, ref, type Ref } from 'vue'; import { computed, onMounted, ref, type Ref } from 'vue';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';

View File

@ -14,13 +14,13 @@ import { AccountApiClient, type Account } from '@/api/account';
import { DataApiClient, type Currency } from '@/api/data'; import { DataApiClient, type Currency } from '@/api/data';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import { TransactionApiClient, type AddTransactionPayload, type TransactionDetail, type TransactionDetailLineItem, type TransactionVendor } from '@/api/transaction'; import { TransactionApiClient, type AddTransactionPayload, type TransactionDetail, type TransactionDetailLineItem, type TransactionVendor } from '@/api/transaction';
import AppPage from '@/components/AppPage.vue'; import AppPage from '@/components/common/AppPage.vue';
import CategorySelect from '@/components/CategorySelect.vue'; import CategorySelect from '@/components/CategorySelect.vue';
import FileSelector from '@/components/FileSelector.vue'; import FileSelector from '@/components/common/FileSelector.vue';
import AppForm from '@/components/form/AppForm.vue'; import AppForm from '@/components/common/form/AppForm.vue';
import FormActions from '@/components/form/FormActions.vue'; import FormActions from '@/components/common/form/FormActions.vue';
import FormControl from '@/components/form/FormControl.vue'; import FormControl from '@/components/common/form/FormControl.vue';
import FormGroup from '@/components/form/FormGroup.vue'; import FormGroup from '@/components/common/form/FormGroup.vue';
import LineItemsEditor from '@/components/LineItemsEditor.vue'; import LineItemsEditor from '@/components/LineItemsEditor.vue';
import TagLabel from '@/components/TagLabel.vue'; import TagLabel from '@/components/TagLabel.vue';
import { getDatetimeLocalValueForNow } from '@/util/time'; import { getDatetimeLocalValueForNow } from '@/util/time';

View File

@ -3,7 +3,7 @@ import { AccountApiClient, type Account, type CurrencyBalance } from '@/api/acco
import { formatMoney } from '@/api/data' import { formatMoney } from '@/api/data'
import { getSelectedProfile } from '@/api/profile' import { getSelectedProfile } from '@/api/profile'
import AccountCard from '@/components/AccountCard.vue' import AccountCard from '@/components/AccountCard.vue'
import AppButton from '@/components/AppButton.vue' import AppButton from '@/components/common/AppButton.vue'
import HomeModule from '@/components/HomeModule.vue' import HomeModule from '@/components/HomeModule.vue'
import { onMounted, ref, type Ref } from 'vue' import { onMounted, ref, type Ref } from 'vue'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'

View File

@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { getSelectedProfile, ProfileApiClient, type Profile } from '@/api/profile'; import { getSelectedProfile, ProfileApiClient, type Profile } from '@/api/profile';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import ConfirmModal from '@/components/ConfirmModal.vue'; import ConfirmModal from '@/components/common/ConfirmModal.vue';
import HomeModule from '@/components/HomeModule.vue'; import HomeModule from '@/components/HomeModule.vue';
import { showAlert } from '@/util/alert'; import { showAlert } from '@/util/alert';
import { onMounted, ref, useTemplateRef, type Ref } from 'vue'; import { onMounted, ref, useTemplateRef, type Ref } from 'vue';

View File

@ -3,9 +3,9 @@ import { formatMoney } from '@/api/data';
import type { Page, PageRequest } from '@/api/pagination'; import type { Page, PageRequest } from '@/api/pagination';
import { getSelectedProfile } from '@/api/profile'; import { getSelectedProfile } from '@/api/profile';
import { TransactionApiClient, type TransactionsListItem } from '@/api/transaction'; import { TransactionApiClient, type TransactionsListItem } from '@/api/transaction';
import AppButton from '@/components/AppButton.vue'; import AppButton from '@/components/common/AppButton.vue';
import HomeModule from '@/components/HomeModule.vue'; import HomeModule from '@/components/HomeModule.vue';
import PaginationControls from '@/components/PaginationControls.vue'; import PaginationControls from '@/components/common/PaginationControls.vue';
import { onMounted, ref, type Ref } from 'vue'; import { onMounted, ref, type Ref } from 'vue';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';