File tree Expand file tree Collapse file tree
mobile/src/components/KeyboardAvoidance Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2424 run : pnpm run lint
2525 - name : Build
2626 run : pnpm run build
27+ - name : Upload build artifact
28+ uses : actions/upload-artifact@v4
29+ with :
30+ name : next-build-${{ github.sha }}
31+ path : .next/
32+ if-no-files-found : error
2733
2834 migration-health :
2935 runs-on : ubuntu-latest
@@ -94,8 +100,11 @@ jobs:
94100 cache : ' pnpm'
95101 - name : Install dependencies
96102 run : pnpm install
97- - name : Build
98- run : pnpm run build
103+ - name : Download build artifact
104+ uses : actions/download-artifact@v4
105+ with :
106+ name : next-build-${{ github.sha }}
107+ path : .next/
99108 - name : Run Lighthouse CI
100109 run : |
101110 pnpm exec lhci autorun
@@ -177,3 +186,27 @@ jobs:
177186 echo "Image exceeds 300MB limit"
178187 exit 1
179188 fi
189+ - name : Verify container starts and responds
190+ run : |
191+ docker run -d \
192+ --name smoke-test \
193+ -p 3000:3000 \
194+ -e NODE_ENV=production \
195+ stellar-creator-portfolio:${{ github.sha }}
196+
197+ echo "Waiting for container to become ready..."
198+ for i in $(seq 1 30); do
199+ if curl -sf http://localhost:3000/api/health > /dev/null 2>&1; then
200+ echo "Container is healthy after ${i}s"
201+ break
202+ fi
203+ if [ "$i" -eq 30 ]; then
204+ echo "Container did not become ready within 30 seconds"
205+ docker logs smoke-test
206+ docker rm -f smoke-test
207+ exit 1
208+ fi
209+ sleep 1
210+ done
211+
212+ docker rm -f smoke-test
Original file line number Diff line number Diff line change 11/**
22 * Keyboard Avoiding View Component
3- * Automatically adjusts view position when keyboard appears
3+ * Automatically adjusts view position when keyboard appears.
4+ *
5+ * Uses the `useKeyboardAvoidance` hook's animated translateY exclusively.
6+ * The native KeyboardAvoidingView has been intentionally removed to avoid
7+ * double-compensation on iOS (both mechanisms react to the same keyboard
8+ * event and would shift content up by ~2× the keyboard height).
49 */
510
611import React , { useMemo } from 'react' ;
712import {
813 Animated ,
9- View ,
1014 ViewProps ,
1115 StyleSheet ,
12- Platform ,
13- KeyboardAvoidingView ,
1416} from 'react-native' ;
1517import { useKeyboardAvoidance } from '../../hooks/useKeyboardAvoidance' ;
1618
@@ -25,7 +27,7 @@ export const KeyboardAvoidingContainer: React.FC<KeyboardAvoidingContainerProps>
2527 style,
2628 ...props
2729} ) => {
28- const { animatedValue, isVisible } = useKeyboardAvoidance ( ) ;
30+ const { animatedValue } = useKeyboardAvoidance ( ) ;
2931
3032 const animatedStyle = useMemo (
3133 ( ) => ( {
@@ -35,29 +37,21 @@ export const KeyboardAvoidingContainer: React.FC<KeyboardAvoidingContainerProps>
3537 ) ;
3638
3739 return (
38- < KeyboardAvoidingView
39- behavior = { Platform . OS === 'ios' ? 'padding' : 'height' }
40- style = { styles . container }
40+ < Animated . View
41+ style = { [
42+ styles . container ,
43+ animatedStyle ,
44+ style ,
45+ ] }
46+ { ...props }
4147 >
42- < Animated . View
43- style = { [
44- styles . content ,
45- animatedStyle ,
46- style ,
47- ] }
48- { ...props }
49- >
50- { children }
51- </ Animated . View >
52- </ KeyboardAvoidingView >
48+ { children }
49+ </ Animated . View >
5350 ) ;
5451} ;
5552
5653const styles = StyleSheet . create ( {
5754 container : {
5855 flex : 1 ,
5956 } ,
60- content : {
61- flex : 1 ,
62- } ,
6357} ) ;
You can’t perform that action at this time.
0 commit comments