Fixed UID length bug for product suggestions re: MFC and payment verbiage

This commit is contained in:
michael
2026-01-26 12:42:27 -08:00
parent e597728883
commit b27baf5dec
12 changed files with 349 additions and 148 deletions

View File

@@ -20,9 +20,25 @@ export function ScanScreen({navigation}: ScanScreenProps) {
openSettings,
} = useScan();
// Navigate to results when scan succeeds (detection happens in the hook)
// Track if we've already navigated to prevent double navigation
const hasNavigated = React.useRef(false);
// Navigate to results when scan succeeds AND transponder is set
// We need transponder to be set (even if null for failed detection) before navigating
useEffect(() => {
if (state === 'success' && tag) {
// Only navigate once per scan session
if (hasNavigated.current) return;
// Wait for success state, tag data, AND transponder to be set
// transponder: undefined = not yet set, null = detection failed, Transponder = success
if (state === 'success' && tag && transponder !== undefined) {
hasNavigated.current = true;
console.log('[ScanScreen] Navigating to Result:', {
hasTag: !!tag,
hasTransponder: !!transponder,
transponderType: transponder?.type,
transponderChipName: transponder?.chipName,
});
navigation.replace('Result', {
tagData: {
uid: tag.uid,
@@ -37,6 +53,13 @@ export function ScanScreen({navigation}: ScanScreenProps) {
}
}, [state, tag, transponder, navigation]);
// Reset navigation flag when starting a new scan
useEffect(() => {
if (state === 'scanning') {
hasNavigated.current = false;
}
}, [state]);
// Auto-start scan when screen loads
useEffect(() => {
// Small delay to ensure screen is mounted