(null);
const formplayerVisibleRef = React.useRef(false);
@@ -89,21 +48,20 @@ function App(): React.JSX.Element {
}, [formplayerVisible]);
useEffect(() => {
- // pre-load form service
- FormService.getInstance().then(() => {
- console.log('FormService pre-loaded');
- });
-
- // Listen for QR scanner requests
- const handleOpenQRScanner = (data: { fieldId: string; onResult: (result: any) => void }) => {
- console.log('Opening QR scanner for field:', data.fieldId);
+ FormService.getInstance();
+
+ const handleOpenQRScanner = (data: {
+ fieldId: string;
+ onResult: (result: any) => void;
+ }) => {
setQrScannerData(data);
setQrScannerVisible(true);
};
- // Listen for signature capture requests
- const handleOpenSignatureCapture = (data: { fieldId: string; onResult: (result: any) => void }) => {
- console.log('Opening signature capture for field:', data.fieldId);
+ const handleOpenSignatureCapture = (data: {
+ fieldId: string;
+ onResult: (result: any) => void;
+ }) => {
setSignatureCaptureData(data);
setSignatureCaptureVisible(true);
};
@@ -111,18 +69,12 @@ function App(): React.JSX.Element {
appEvents.addListener('openQRScanner', handleOpenQRScanner);
appEvents.addListener('openSignatureCapture', handleOpenSignatureCapture);
- // Global Formplayer open/close handlers so any screen can trigger it
const handleOpenFormplayer = async (config: any) => {
- console.log('App: openFormplayerRequested event received', config);
-
if (formplayerVisibleRef.current) {
- console.log('App: FormplayerModal already visible, ignoring open request');
return;
}
- const { formType, observationId, params, savedData, operationId } = config;
-
- console.log('App: Opening FormplayerModal');
+ const {formType, observationId, params, savedData, operationId} = config;
formplayerVisibleRef.current = true;
setFormplayerVisible(true);
@@ -130,13 +82,11 @@ function App(): React.JSX.Element {
const forms = formService.getFormSpecs();
if (forms.length === 0) {
- console.warn('App: No forms available when trying to open Formplayer');
return;
}
- const formSpec = forms.find((form) => form.id === formType);
+ const formSpec = forms.find(form => form.id === formType);
if (!formSpec) {
- console.warn(`App: Form ${formType} not found when trying to open Formplayer`);
return;
}
@@ -149,8 +99,7 @@ function App(): React.JSX.Element {
);
};
- const handleCloseFormplayer = (data: any) => {
- console.log('App: closeFormplayer event received', data);
+ const handleCloseFormplayer = () => {
formplayerVisibleRef.current = false;
setFormplayerVisible(false);
};
@@ -160,79 +109,53 @@ function App(): React.JSX.Element {
return () => {
appEvents.removeListener('openQRScanner', handleOpenQRScanner);
- appEvents.removeListener('openSignatureCapture', handleOpenSignatureCapture);
+ appEvents.removeListener(
+ 'openSignatureCapture',
+ handleOpenSignatureCapture,
+ );
appEvents.removeListener('openFormplayerRequested', handleOpenFormplayer);
appEvents.removeListener('closeFormplayer', handleCloseFormplayer);
};
}, []);
- const handleQRScannerClose = () => {
- setQrScannerVisible(false);
- setQrScannerData(null);
- };
-
- const handleSignatureCaptureClose = () => {
- setSignatureCaptureVisible(false);
- setSignatureCaptureData(null);
- };
-
- const handleSignatureCaptureResult = (result: any) => {
- if (signatureCaptureData?.onResult) {
- signatureCaptureData.onResult(result);
- }
- };
return (
- <>
- ({
- headerRight: () => ,
- headerStyle: { backgroundColor: '#ffffff' },
- headerTintColor: '#000000',
- headerTitleStyle: { color: '#000000' },
- })}
- >
-
-
-
-
-
-
-
- {/* Global Formplayer Modal so it can be opened from any screen */}
- {
- console.log('App: FormplayerModal onClose called');
- formplayerVisibleRef.current = false;
- setFormplayerVisible(false);
- }}
- />
- >
+
+ {
+ formplayerVisibleRef.current = false;
+ setFormplayerVisible(false);
+ }}
+ />
- {/* QR Scanner Modal */}
{
+ setQrScannerVisible(false);
+ setQrScannerData(null);
+ }}
fieldId={qrScannerData?.fieldId}
onResult={qrScannerData?.onResult}
/>
-
- {/* Signature Capture Modal */}
+
{
+ setSignatureCaptureVisible(false);
+ setSignatureCaptureData(null);
+ }}
fieldId={signatureCaptureData?.fieldId || ''}
- onSignatureCapture={handleSignatureCaptureResult}
+ onSignatureCapture={(result: any) => {
+ signatureCaptureData?.onResult?.(result);
+ }}
/>
);
}
-export default App;
\ No newline at end of file
+export default App;
diff --git a/formulus/assets/images/logo.png b/formulus/assets/images/logo.png
new file mode 100644
index 000000000..a5994bc28
Binary files /dev/null and b/formulus/assets/images/logo.png differ
diff --git a/formulus/assets/webview/placeholder_app.html b/formulus/assets/webview/placeholder_app.html
index 667bbb2ef..ec8065c24 100644
--- a/formulus/assets/webview/placeholder_app.html
+++ b/formulus/assets/webview/placeholder_app.html
@@ -10,27 +10,35 @@
Your Custom App
- This is an placeholder. Your app will appear here after sync.
+ This is a placeholder. Your app will appear here after sync.