Commit Graph

27 Commits

Author SHA1 Message Date
Sebastien Castiel
210c12b7ef Use tRPC in other group pages (#249)
* Use tRPC in group edition + group layout

* Use tRPC in group modals

* Use tRPC in group stats

* Use tRPC in group activity
2024-10-19 21:29:53 -04:00
Sebastien Castiel
66e15e419e Add tRPC, use it for group expenses, balances and information page (#246)
* Add tRPC, use it for group expense list

* Use tRPC for balances

* Use tRPC in group information + better loading states
2024-10-19 17:42:11 -04:00
Tuomas Jaakola
4f5e124ff0 Internationalization + Finnish language (#181)
* I18n with next-intl

* package-lock

* Finnish translations

* Development fix

* Use locale for positioning currency symbol

* Translations: Expenses.ActiveUserModal

* Translations: group 404

* Better translation for ExpenseCard

* Apply translations in CategorySelect search

* Fix for Finnish translation

* Translations for ExpenseDocumentsInput

* Translations for CreateFromReceipt

* Fix for Finnish translation

* Translations for schema errors

* Fix for Finnish translation

* Fixes for Finnish translations

* Prettier

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-08-02 11:26:23 -04:00
Sergio Behrends
7145cb6f30 Increase fuzzines of search results (#187)
* Introduce normalizeString fn

* Prettier

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-08-02 10:57:18 -04:00
Stefan Hynst
d3fd8027a5 Implement "infinite scroll" for expenses (#95)
* Extract ExpenseCard vom ExpenseList

* Implement simple pagination of expenses (see #30)

- display only this year's entries by default
- a "Show more" button reveals all expenses

* Turn getPrisma() into constant "prisma"

- getPrisma() is not async and doesn't need to be awaited
- turn getPrisma() into exported constant "prisma"

* Select fields to be returned by getGroupExpenses()

- make JSON more concise and less redundant
- some properties were removed (i.e.instead of "expense.paidById" use "expense.paidBy.id")

* Remove "participants" from ExpenseCard

- no need to search for participant by id to get it's name
- name property is already present in expense

* Add option to fetch a slice of group expenses

- specify offset and length to get expenses for [offset, offset+length[
- add function to get total number of group expenses

* Add api route for client to fetch group expenses

* Remove "Show more" button from expense list

* Implement infinite scroll

- in server component Page
  - only load first 200 expenses max
  - pass preloaded expenses and total count

- in client component ExpenseList, if there are more expenses to show
  - test if there are more expenses
  - append preloading "skeletons" to end of list
  - fetch more expenses when last item in list comes into view
  - after each fetch increase fetch-length by factor 1.5
    - rationale: db fetch usually is not the issue here, the longer the list gets, the longer react needs to redraw

* Use server action instead of api endpoint

* Fixes

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-05-29 21:36:07 -04:00
Stefan Hynst
833237b613 Add "x" button to cancel search in search bar (#107) 2024-05-29 21:26:04 -04:00
dcbr
1cd2b273f9 Show the impact of an expense on the active user's balance (#139)
* Add devcontainer configuration for codespace support

* Show the impact of an expense on the active user's balance

* Run prettier

* Put the balance on a different line

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-04-13 13:07:18 -04:00
annalouisep
cc37083389 Expense list: add section for planned purchases (#122)
* add planned purchases

* Updating verbiage to reflect possible future entry types
2024-03-09 11:30:24 -05:00
Lauri Vuorela
be0964d9e1 format currency with thousand separators (#81) 2024-02-04 20:16:30 -05:00
Sebastien Castiel
4a9bf575bd Create expense from receipt (#69)
* Create expense from receipt

* Add modal

* Update README
2024-01-30 16:36:29 -05:00
Vid Čufar
2228415323 Fix search functionality (#62)
* Improve README instructions for local setup

* Fix search functionality #61
- use 'includes' for expense filtering

* Ensure expense groups with no matching expenses are hidden after filtering

* Improve README instructions for local setup
2024-01-26 10:27:34 -05:00
Ankit Bahl
ae7cb2ccc8 Added search bar for expense list page (#52)
* Added search bar for expense list page

* Change search input styling

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-01-19 16:38:18 -05:00
Sebastien Castiel
c4de3f605c Improve UI of expense list 2024-01-17 10:22:49 -05:00
Brandon Eng
ff6b84ff88 Group expenses (#48)
* Group expenses my date

* Group expenses my date

* typescript errors

* prettier

* getExpenseGroup

* update logic to use dayjs

* clean up
2024-01-17 09:42:00 -05:00
Sebastien Castiel
c7fb810f80 Add category icons 2024-01-11 17:12:21 -05:00
Sebastien Castiel
f20ebd5bdd Improve design for expense list 2024-01-10 08:21:12 -05:00
Sebastien Castiel
1b9e624004 Ask the user who they are when opening a group for the first time (#7) 2024-01-09 08:53:51 -05:00
Ankit Bahl
6bd3299331 Add activeUser for default payer per group (#16)
* Add activeUser for default payer per group

* Prettier, change labels, use useEffect

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-01-09 08:08:17 -05:00
Sebastien Castiel
a942369193 Fix how dates are displayed (Fix #33) 2024-01-09 07:45:28 -05:00
Chris Johnston
bec1dd270a Add Expense Date (#26)
* add expense date

* Improve date formatting

* Prettier

* Change field description

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-01-08 14:26:44 -05:00
Sebastien Castiel
f881aff5f9 Revert "Use modal dialogs for expense creation & edition (#10)"
This reverts commit 1e66efe516.
2023-12-19 09:44:09 -05:00
Sebastien Castiel
1e66efe516 Use modal dialogs for expense creation & edition (#10)
* First attemps at using route interception and modals

* Remove route interception

* Make it work

* Use Vaul on small screens

* Improve vaul
2023-12-19 09:36:40 -05:00
Sebastien Castiel
92a21ff4c5 Migration script, improvements in expenses list 2023-12-08 14:56:51 -05:00
Sebastien Castiel
fb6cff2fe3 Share button 2023-12-07 19:38:03 -05:00
Sebastien Castiel
0b27f90fb7 Titles and navigation 2023-12-07 16:44:01 -05:00
Sebastien Castiel
6611e3a187 Store amounts as cents 2023-12-07 11:11:53 -05:00
Sebastien Castiel
ec981fd237 Improve responsiveness 2023-12-06 21:07:51 -05:00