🏠 Home page work

This commit is contained in:
Alicia Sykes 2022-07-08 21:46:37 +01:00
parent c461e10428
commit 4ca97314d3
2 changed files with 39 additions and 1 deletions

View File

@ -25,3 +25,9 @@ code {
background: var(--primary, #9fef00); background: var(--primary, #9fef00);
color: var(--background, #141d2b); color: var(--background, #141d2b);
} }
svg.rsm-svg {
background: #2a3240;
border-radius: 6px;
}

View File

@ -30,14 +30,26 @@ const UserInputMain = styled.form`
margin: 1rem; margin: 1rem;
`; `;
const FindIpButton = styled.a`
margin: 0.5rem;
cursor: pointer;
display: block;
text-align: center;
color: ${colors.primary};
text-decoration: underline;
`;
const ErrorMessage = styled.p` const ErrorMessage = styled.p`
color: ${colors.danger}; color: ${colors.danger};
margin: 0.5rem; margin: 0.5rem;
`; `;
const Home = (): JSX.Element => { const Home = (): JSX.Element => {
const defaultPlaceholder = 'e.g. https://duck.com/';
const [userInput, setUserInput] = useState(''); const [userInput, setUserInput] = useState('');
const [errorMsg, setErrMsg] = useState(''); const [errorMsg, setErrMsg] = useState('');
const [placeholder, setPlaceholder] = useState(defaultPlaceholder);
const [inputDisabled, setInputDisabled] = useState(false);
const navigate = useNavigate(); const navigate = useNavigate();
/* Check is valid address, either show err or redirect to results page */ /* Check is valid address, either show err or redirect to results page */
@ -62,6 +74,24 @@ const Home = (): JSX.Element => {
if (!isError) setErrMsg(''); if (!isError) setErrMsg('');
}; };
const findIpAddress = () => {
setUserInput('');
setPlaceholder('Looking up your IP...');
setInputDisabled(true);
fetch('https://ipapi.co/json/')
.then(function(response) {
response.json().then(jsonData => {
console.log(jsonData);
setUserInput(jsonData.ip);
setPlaceholder(defaultPlaceholder);
setInputDisabled(true);
});
})
.catch(function(error) {
console.log(error)
});
};
const formSubmitEvent = (event: FormEvent<HTMLFormElement>) => { const formSubmitEvent = (event: FormEvent<HTMLFormElement>) => {
event.preventDefault(); event.preventDefault();
submit(); submit();
@ -78,9 +108,11 @@ const Home = (): JSX.Element => {
label="Enter an IP or URL" label="Enter an IP or URL"
size="large" size="large"
orientation="vertical" orientation="vertical"
placeholder="e.g. https://duck.com" placeholder={placeholder}
disabled={inputDisabled}
handleChange={inputChange} handleChange={inputChange}
/> />
<FindIpButton onClick={findIpAddress}>Or, find my IP</FindIpButton>
{ errorMsg && <ErrorMessage>{errorMsg}</ErrorMessage>} { errorMsg && <ErrorMessage>{errorMsg}</ErrorMessage>}
<Button size="large" onClick={submit}>Analyze!</Button> <Button size="large" onClick={submit}>Analyze!</Button>
</UserInputMain> </UserInputMain>