Skip to content
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
174dd72
chore(deps): downgrade react and @types/react, update expo-updates
BillChirico Dec 9, 2025
099e2e5
Merge branch 'main' into develop
BillChirico Dec 9, 2025
b3192be
Merge remote-tracking branch 'origin/main' into develop
BillChirico Dec 10, 2025
96d8eed
docs(plans): add Liquid Glass native navigation design
BillChirico Dec 10, 2025
456629b
fix(profile): update profile handling to use user.id instead of profi…
BillChirico Dec 10, 2025
232ef5d
chore(deps): bump react-native-screens from 4.16.0 to 4.18.0 (#124)
dependabot[bot] Dec 11, 2025
ad95813
chore(deps): bump @react-native-community/datetimepicker (#128)
dependabot[bot] Dec 11, 2025
04e398f
chore(deps): bump @react-navigation/bottom-tabs from 7.8.11 to 7.8.12…
dependabot[bot] Dec 11, 2025
6c66562
chore(deps): bump react-native-svg from 15.12.1 to 15.15.1 (#126)
dependabot[bot] Dec 11, 2025
3737bef
chore(deps): bump react and @types/react (#125)
dependabot[bot] Dec 11, 2025
dffe21a
docs(claude): enhance documentation for testing and development workf…
BillChirico Dec 11, 2025
eb4cec5
docs(claude): add comprehensive pushing guidelines and handling push …
BillChirico Dec 11, 2025
da5733c
Merge branch 'main' into develop
BillChirico Dec 11, 2025
07ab2d2
feat(profile): add EnterInviteCodeSheet with keyboard handling
BillChirico Dec 11, 2025
038c47b
Update CLAUDE.md
BillChirico Dec 11, 2025
3242d3b
fix(profile): check both user.id and profile.id for self-connect prev…
BillChirico Dec 11, 2025
bb3477a
refactor(profile): wrap EnterInviteCodeSheet in conditional rendering
BillChirico Dec 11, 2025
79d377e
docs(claude): add language to fenced code block (MD040)
BillChirico Dec 11, 2025
5932095
feat(sheets): add testID and accessibilityLabel to invite code input
BillChirico Dec 11, 2025
cf701a5
Update CLAUDE.md
BillChirico Dec 11, 2025
f573883
fix(sheets): only call onClose when dismissed without submitting
BillChirico Dec 11, 2025
33816e7
docs(plans): add toast notification system design
BillChirico Dec 11, 2025
fb5241e
fix(sheets): handle Android back button to dismiss modals
BillChirico Dec 11, 2025
5afafac
fix(sheets): improve Android date picker onChange handling
BillChirico Dec 11, 2025
2aef147
fix(profile): use native Android date picker without custom modal
BillChirico Dec 11, 2025
97cf573
chore(tests): expand document mock for better web compatibility
BillChirico Dec 11, 2025
88d2b71
refactor(profile): remove unused onClose callback from EnterInviteCod…
BillChirico Dec 11, 2025
e68196f
refactor(sheets): remove isMountedRef anti-pattern from EnterInviteCo…
BillChirico Dec 11, 2025
5f64204
docs(sheets): clarify DateTimePicker onChange comment in LogSlipUpSheet
BillChirico Dec 11, 2025
65b7b63
Update components/sheets/EnterInviteCodeSheet.tsx
BillChirico Dec 11, 2025
7840885
docs(profile): document platform-specific date picker behavior
BillChirico Dec 11, 2025
8b0c7fb
Update jest.setup.js
BillChirico Dec 11, 2025
3ebc49b
test(profile): add integration tests for EnterInviteCodeSheet callback
BillChirico Dec 11, 2025
1e11aff
test(sheets): verify isSubmitting resets after error in EnterInviteCo…
BillChirico Dec 11, 2025
74e4b99
refactor(profile): extract shared handler for date picker confirmation
BillChirico Dec 11, 2025
f5ad9c1
test(validation): add edge case for input with only special characters
BillChirico Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
478 changes: 467 additions & 11 deletions CLAUDE.md

Large diffs are not rendered by default.

26 changes: 21 additions & 5 deletions __tests__/app/profile.keyboard-avoidance.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ jest.mock('lucide-react-native', () => ({
AlertCircle: () => null,
CheckCircle: () => null,
Settings: () => null,
X: () => null,
// Icons used by SettingsSheet
LogOut: () => null,
Moon: () => null,
Expand Down Expand Up @@ -331,7 +332,7 @@ jest.mock('@/components/GlassBottomSheet', () => {
};
});

// Mock BottomSheetScrollView (required by SettingsSheet)
// Mock BottomSheetScrollView and BottomSheetTextInput (required by sheets)
jest.mock('@gorhom/bottom-sheet', () => ({
BottomSheetScrollView: ({ children, ...props }: { children: React.ReactNode }) => {
const React = require('react');
Expand All @@ -342,8 +343,24 @@ jest.mock('@gorhom/bottom-sheet', () => ({
children
);
},
BottomSheetTextInput: (props: Record<string, unknown>) => {
const React = require('react');
const { TextInput } = require('react-native');
return React.createElement(TextInput, props);
},
}));

// Mock EnterInviteCodeSheet
jest.mock('@/components/sheets/EnterInviteCodeSheet', () => {
const React = require('react');
const MockEnterInviteCodeSheet = React.forwardRef(() => null);
MockEnterInviteCodeSheet.displayName = 'EnterInviteCodeSheet';
return {
__esModule: true,
default: MockEnterInviteCodeSheet,
};
});

// Store original Platform.OS
const originalPlatformOS = Platform.OS;

Expand Down Expand Up @@ -420,16 +437,15 @@ describe('ProfileScreen Keyboard Avoidance', () => {
});
});

it('shows invite input when enter invite code is pressed', async () => {
it('presents invite code sheet when enter invite code is pressed', async () => {
render(<ProfileScreen />);

await waitFor(() => {
fireEvent.press(screen.getByText('Enter Invite Code'));
});

await waitFor(() => {
expect(screen.getByPlaceholderText('Enter 8-character code')).toBeTruthy();
});
// EnterInviteCodeSheet is mocked - the sheet is presented via ref
// This test verifies the button is clickable and doesn't throw
});
});

Expand Down
Loading
Loading