1
0
mirror of https://github.com/uetchy/namae.git synced 2025-07-01 22:10:04 +09:00
namae/src/App.js

78 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-07-27 19:18:54 +09:00
import React from 'react'
2019-07-30 23:27:28 +09:00
import styled, { createGlobalStyle } from 'styled-components'
import { useDeferredState } from './hooks/state'
import { CardHolder } from './components/Card'
import GithubCard from './components/GithubCard'
import TwitterCard from './components/TwitterCard'
import NpmCard from './components/NpmCard'
2019-07-31 00:18:58 +09:00
import JsOrgCard from './components/JsOrgCard'
import HomebrewCard from './components/HomebrewCard'
2019-07-27 19:18:54 +09:00
import './App.css'
2019-07-30 23:27:28 +09:00
const GlobalStyle = createGlobalStyle`
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
`
2019-07-27 19:18:54 +09:00
2019-07-30 23:27:28 +09:00
export default function App() {
const [query, setQuery] = useDeferredState(1000)
2019-07-27 19:18:54 +09:00
function onChange(e) {
setQuery(e.target.value)
}
return (
2019-07-30 23:27:28 +09:00
<>
<GlobalStyle />
2019-07-27 19:18:54 +09:00
<header>
2019-07-30 23:27:28 +09:00
<Input
onChange={onChange}
placeholder="awesome-package"
autoComplete="off"
autoCorrect="off"
autoCapitalize="off"
spellCheck="false"
/>
2019-07-27 19:18:54 +09:00
</header>
2019-07-30 23:27:28 +09:00
{query && query.length > 0 ? (
2019-07-31 00:18:58 +09:00
<Result>
2019-07-30 23:27:28 +09:00
<ResultHeader>Result for {query}</ResultHeader>
<CardHolder>
<GithubCard name={query} />
<TwitterCard name={query} />
<NpmCard name={query} />
2019-07-31 00:18:58 +09:00
<JsOrgCard name={query} />
<HomebrewCard name={query} />
2019-07-30 23:27:28 +09:00
</CardHolder>
2019-07-31 00:18:58 +09:00
</Result>
2019-07-30 23:27:28 +09:00
) : null}
</>
2019-07-27 19:18:54 +09:00
)
}
2019-07-30 23:27:28 +09:00
const Input = styled.input`
width: 100%;
padding: 20px;
outline: none;
font-size: 4rem;
font-family: monospace;
@media screen and (max-width: 800px) {
font-size: 2rem;
}
`
2019-07-31 00:18:58 +09:00
const Result = styled.div`
2019-07-30 23:27:28 +09:00
margin-top: 40px;
`
2019-07-31 00:18:58 +09:00
const ResultHeader = styled.div`
2019-07-30 23:27:28 +09:00
padding-left: 20px;
margin-bottom: 20px;
2019-07-31 00:18:58 +09:00
font-size: 1.2rem;
font-weight: bold;
2019-07-30 23:27:28 +09:00
`