Skip to content

Commit 4b8f761

Browse files
authored
Merge pull request #73 from joaoc-dev/dev
merge dev
2 parents 636da0b + a62db41 commit 4b8f761

11 files changed

Lines changed: 32 additions & 9 deletions

File tree

.github/workflows/release.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,21 @@ jobs:
2525
- name: Checkout repo
2626
uses: actions/checkout@v4
2727
with:
28-
fetch-depth: 0 # Important for semantic-release to get full git history
28+
fetch-depth: 0 # Important for semantic-release to get full git history
2929

3030
- name: Install pnpm
3131
uses: pnpm/action-setup@v4
3232
with:
3333
version: 10
34+
package_json_file: blueledger-webapp/package.json
35+
run_install: false
3436

3537
- name: Setup Node.js
3638
uses: actions/setup-node@v4
3739
with:
3840
node-version: ${{ matrix.node-version }}
3941
cache: 'pnpm'
42+
cache-dependency-path: blueledger-webapp/pnpm-lock.yaml
4043

4144
- name: Install dependencies
4245
run: pnpm install
@@ -47,4 +50,4 @@ jobs:
4750
- name: Run semantic-release
4851
env:
4952
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50-
run: npx semantic-release
53+
run: npx semantic-release

blueledger-webapp/app/api/friendships/invite/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export const POST = withAuth(async (request: NextAuthRequest) => {
120120

121121
// Send pusher notification to recipient when created
122122
const privateChannel = `private-user-${recipientUser.id}`;
123-
sendToPusher(privateChannel, PusherEvents.NOTIFICATION as PusherEvent, '');
123+
await sendToPusher(privateChannel, PusherEvents.NOTIFICATION as PusherEvent, '');
124124

125125
logger.info(LogEvents.FRIENDSHIP_INVITE_SENT, {
126126
fromUser,

blueledger-webapp/app/api/groups/[id]/memberships/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ export const POST = withAuth(async (
202202

203203
// Send pusher notification to recipient when created
204204
const privateChannel = `private-user-${recipientUser.id}`;
205-
sendToPusher(privateChannel, PusherEvents.NOTIFICATION as PusherEvent, '');
205+
await sendToPusher(privateChannel, PusherEvents.NOTIFICATION as PusherEvent, '');
206206

207207
logger.info(LogEvents.GROUP_MEMBERSHIP_INVITE, {
208208
fromUser: inviterId,

blueledger-webapp/app/layout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const inter = Inter({
2525

2626
export const metadata: Metadata = generateMetadata({
2727
manifest: '/manifest.json',
28+
metadataBase: new URL(process.env.NEXT_PUBLIC_SITE_URL ?? 'https://blueledger.production.joao-carvalho.com'),
2829
icons: {
2930
icon: '/favicon.ico',
3031
apple: '/hand-coins.png',

blueledger-webapp/components/layout/nav-bar/nav-bar.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use client';
22

3+
import { useEffect } from 'react';
34
import { useIsMobile } from '@/hooks/useIsMobile';
45
import { DesktopNavBar } from './desktop-nav-bar';
56
import { MobileNavBar } from './mobile-nav-bar';
@@ -26,6 +27,12 @@ const links = [
2627

2728
function NavBar() {
2829
const isMobile = useIsMobile();
30+
31+
useEffect(() => {
32+
import('@/features/groups/components/groups-table');
33+
import('@/features/friendship/components/friendships-table');
34+
}, []);
35+
2936
if (isMobile === undefined)
3037
return <NavBarLoading />;
3138

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
'use client';
22

33
import dynamic from 'next/dynamic';
4+
import ExpensesTableSkeleton from './expenses-table-skeleton';
45

56
const DynamicTableWrapper = dynamic(() => import('./expenses-table'), {
67
ssr: false,
8+
loading: () => <ExpensesTableSkeleton />,
79
});
810

911
export default DynamicTableWrapper;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
'use client';
22

33
import dynamic from 'next/dynamic';
4+
import FriendshipsTableSkeleton from './friendships-table-skeleton';
45

56
const DynamicTableWrapper = dynamic(() => import('./friendships-table'), {
67
ssr: false,
8+
loading: () => <FriendshipsTableSkeleton />,
79
});
810

911
export default DynamicTableWrapper;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
'use client';
22

33
import dynamic from 'next/dynamic';
4+
import GroupsTableSkeleton from './groups-table-skeleton';
45

56
const DynamicTableWrapper = dynamic(() => import('./groups-table'), {
67
ssr: false,
8+
loading: () => <GroupsTableSkeleton />,
79
});
810

911
export default DynamicTableWrapper;

blueledger-webapp/features/groups/components/modals/add-member-by-email.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ import AddMemberPanel from './add-member-panel';
1414

1515
interface AddMemberByEmailProps {
1616
currentUserMembership: GroupMembershipDisplay;
17-
onSuccess: () => void;
1817
isInviting: boolean;
1918
setIsInviting: (inviting: boolean) => void;
2019
}
2120

22-
function AddMemberByEmail({ currentUserMembership, onSuccess, isInviting, setIsInviting }: AddMemberByEmailProps) {
21+
function AddMemberByEmail({ currentUserMembership, isInviting, setIsInviting }: AddMemberByEmailProps) {
2322
const [email, setEmail] = useState('');
2423
const [queryEmail, setQueryEmail] = useState('');
2524

@@ -43,6 +42,12 @@ function AddMemberByEmail({ currentUserMembership, onSuccess, isInviting, setIsI
4342
setQueryEmail('');
4443
}, []);
4544

45+
function handleSuccess() {
46+
setIsInviting(false);
47+
setEmail('');
48+
setQueryEmail('');
49+
}
50+
4651
return (
4752
<div className="flex flex-col gap-4 w-full">
4853
<div className="flex items-center gap-2 w-full">
@@ -131,7 +136,7 @@ function AddMemberByEmail({ currentUserMembership, onSuccess, isInviting, setIsI
131136
}
132137

133138
// User can be invited - show the invite panel
134-
return <AddMemberPanel user={data.user} currentUserMembership={currentUserMembership} onSuccess={onSuccess} isInviting={isInviting} setIsInviting={setIsInviting} />;
139+
return <AddMemberPanel user={data.user} currentUserMembership={currentUserMembership} onSuccess={handleSuccess} isInviting={isInviting} setIsInviting={setIsInviting} />;
135140
})()}
136141
</div>
137142
</div>

blueledger-webapp/features/groups/components/modals/add-member-modal.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ function AddMemberModal({ isOpen, setIsOpen, currentUserMembership }: AddMemberM
140140
</p>
141141
<AddMemberByEmail
142142
currentUserMembership={currentUserMembership}
143-
onSuccess={handleClose}
144143
isInviting={isInviting}
145144
setIsInviting={setIsInviting}
146145
/>

0 commit comments

Comments
 (0)