Browse Source

refactor: update window type definitions for Flutter response handling

master
mortezaei 2 months ago
parent
commit
970a80f8f6
  1. 19
      src/components/ui/report-actions-sheet.tsx
  2. 8
      src/types/window.d.ts

19
src/components/ui/report-actions-sheet.tsx

@ -9,19 +9,6 @@ type ReportActionsSheetProps = {
onClose?: () => void; onClose?: () => void;
}; };
declare global {
interface Window {
HabibApp?: {
postMessage: (message: string) => void;
};
onFlutterResponse?: (event: {
action: string;
success: boolean;
data?: { latitude: number; longitude: number };
}) => void;
}
}
export function ReportActionsSheet({ onClose }: ReportActionsSheetProps) { export function ReportActionsSheet({ onClose }: ReportActionsSheetProps) {
const [isVisible, setIsVisible] = useState(true); const [isVisible, setIsVisible] = useState(true);
const [isEntering, setIsEntering] = useState(true); const [isEntering, setIsEntering] = useState(true);
@ -80,11 +67,7 @@ export function ReportActionsSheet({ onClose }: ReportActionsSheetProps) {
}, [isClosing, onClose]); }, [isClosing, onClose]);
useEffect(() => { useEffect(() => {
const handleFlutterResponse = (event: {
action: string;
success: boolean;
data?: { latitude: number; longitude: number };
}) => {
const handleFlutterResponse: NonNullable<Window["onFlutterResponse"]> = (event) => {
if (event.action === "get_location" && event.success && event.data) { if (event.action === "get_location" && event.success && event.data) {
const message = `Location: ${event.data.latitude}, ${event.data.longitude}`; const message = `Location: ${event.data.latitude}, ${event.data.longitude}`;
alert(message); alert(message);

8
src/types/window.d.ts

@ -1,8 +1,14 @@
declare global { declare global {
interface FlutterResponseEvent {
action: string;
success: boolean;
data?: { latitude: number; longitude: number };
}
interface Window { interface Window {
HABIB_TOKEN?: string; HABIB_TOKEN?: string;
HABIB_COINS?: number; HABIB_COINS?: number;
onFlutterResponse?: (data: any) => void;
onFlutterResponse?: (event: FlutterResponseEvent) => void;
HabibApp?: { HabibApp?: {
postMessage: (message: string) => void; postMessage: (message: string) => void;
}; };

Loading…
Cancel
Save