Closed jeongbaebang closed 1 week ago
import React, { useState } from 'react'; import usePermission from './hooks/usePermission'; const LocationComponent: React.FC = () => { const { status } = usePermission({ permission: 'geolocation' }); const [location, setLocation] = useState<{ latitude: number; longitude: number; } | null>(null); const handleGetLocation = () => { if (status === 'prompt' || status === 'granted') { navigator.geolocation.getCurrentPosition( (position) => { setLocation({ latitude: position.coords.latitude, longitude: position.coords.longitude, }); }, (error) => { console.error('์์น ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ์คํจํ์ต๋๋ค.', error); } ); } else { alert('์์น ์ ๋ณด ๊ถํ์ด ํ์ํฉ๋๋ค.'); } }; return ( <div> <h2>์์น ์ ๋ณด ๊ถํ ์ํ: {status}</h2> <button onClick={handleGetLocation}>์์น ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ</button> {location && ( <div> <p>์๋: {location.latitude}</p> <p>๊ฒฝ๋: {location.longitude}</p> </div> )} {status === 'prompt' && <p>์์น ์ ๋ณด ์ ๊ทผ ๊ถํ์ ์์ฒญ ์ค์ ๋๋ค...</p>} {status === 'denied' && ( <p> ์์น ์ ๋ณด ์ ๊ทผ ๊ถํ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค. ์ค์ ์์ ๊ถํ์ ํ์ฉํด ์ฃผ์ธ์. </p> )} {status === 'notSupported' && ( <p>์ด ๋ธ๋ผ์ฐ์ ๋ ์์น ์ ๋ณด ์ ๊ทผ ๊ถํ์ ์ง์ํ์ง ์์ต๋๋ค.</p> )} </div> ); }; export default LocationComponent;
๐พ Pull Request
1๏ธโฃ Spec
2๏ธโฃ ๋ณ๊ฒฝ ์ฌํญ
3๏ธโฃ ์์ ์ฝ๋
4๏ธโฃ ๊ด๋ จ ๋ฌธ์ (์ ํ ์ฌํญ)