원더 2021-01-10 12:39:46 +09:00
parent ca15f0af36
commit 5267edccb8
4 changed files with 40 additions and 7 deletions

View File

@ -1,12 +1,20 @@
/* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/no-static-element-interactions */
import Link from 'next/link' import Link from 'next/link'
const LongButton = ({ children, href, onClick, center=false }:LongButtonProps):JSX.Element => { const LongButton = ({ children, newTab=false, href, onClick, center=false }:LongButtonProps):JSX.Element => {
if(href) return <Link href={href}> if(href) {
<div className={`${center ? 'justify-center ': '' }text-base bg-little-white dark:bg-discord-black text-black dark:text-gray-400 rounded flex hover:bg-little-white-hover dark:hover:bg-discord-dark-hover cursor-pointer px-4 py-4 mb-1`}> if(newTab) return <a href={href} rel="noopener noreferrer"
{children} target="_blank">
</div> <div className={`${center ? 'justify-center ': '' }text-base bg-little-white dark:bg-discord-black text-black dark:text-gray-400 rounded flex hover:bg-little-white-hover dark:hover:bg-discord-dark-hover cursor-pointer px-4 py-4 mb-1`}>
</Link> {children}
</div>
</a>
else return <Link href={href}>
<div className={`${center ? 'justify-center ': '' }text-base bg-little-white dark:bg-discord-black text-black dark:text-gray-400 rounded flex hover:bg-little-white-hover dark:hover:bg-discord-dark-hover cursor-pointer px-4 py-4 mb-1`}>
{children}
</div>
</Link>
}
if(onClick) return <div onKeyDown={onClick} onClick={onClick} className={`${center ? 'justify-center ': '' }text-base bg-little-white dark:bg-discord-black text-black dark:text-gray-400 rounded flex hover:bg-little-white-hover dark:hover:bg-discord-dark-hover cursor-pointer px-4 py-4 mb-1`}> if(onClick) return <div onKeyDown={onClick} onClick={onClick} className={`${center ? 'justify-center ': '' }text-base bg-little-white dark:bg-discord-black text-black dark:text-gray-400 rounded flex hover:bg-little-white-hover dark:hover:bg-discord-dark-hover cursor-pointer px-4 py-4 mb-1`}>
{children} {children}
</div> </div>
@ -22,6 +30,7 @@ const LongButton = ({ children, href, onClick, center=false }:LongButtonProps):J
export default LongButton export default LongButton
interface LongButtonProps { interface LongButtonProps {
newTab?: boolean
onClick?: (event: React.KeyboardEvent<HTMLDivElement>|React.MouseEvent<HTMLDivElement>) => void onClick?: (event: React.KeyboardEvent<HTMLDivElement>|React.MouseEvent<HTMLDivElement>) => void
children: JSX.Element | JSX.Element[] children: JSX.Element | JSX.Element[]
href?: string href?: string

View File

@ -9,8 +9,29 @@ const Tag = ({
circular = false, circular = false,
dark = false, dark = false,
marginBottom = 2, marginBottom = 2,
newTab = false
}: LabelProps): JSX.Element => { }: LabelProps): JSX.Element => {
return href ? ( return href ? newTab ? (
<a
href={href}
rel="noopener noreferrer"
target="_blank"
className={`${className ?? ''} text-center text-base ${
dark
? blurple
? 'bg-discord-blurple'
: 'bg-little-white-hover dark:bg-very-black'
: github
? 'bg-gray-900 text-white'
: 'bg-little-white dark:bg-discord-black'
} ${!blurple && !github ? 'text-black dark:text-gray-400' : ''} ${
circular ? 'rounded-3xl px-2.5 py-1.5' : 'rounded px-2 py-1'
} mr-1 mb-${marginBottom} hover:bg-little-white-hover dark:hover:bg-discord-dark-hover`}
>
{text}
</a>
) : (
<Link href={href}> <Link href={href}>
<a <a
className={`${className ?? ''} text-center text-base ${ className={`${className ?? ''} text-center text-base ${
@ -57,6 +78,7 @@ interface LabelProps {
circular?: boolean circular?: boolean
dark?: boolean dark?: boolean
marginBottom?: number marginBottom?: number
newTab?: boolean
} }
export default Tag export default Tag

View File

@ -65,6 +65,7 @@ const Bots: NextPage<BotsProps> = ({ data, date }) => {
</div> </div>
<div className="w-full lg:w-1/4"> <div className="w-full lg:w-1/4">
<LongButton <LongButton
newTab
href={ href={
data.url ?? data.url ??
`https://discordapp.com/oauth2/authorize?client_id=${data.id}&scope=bot&permissions=0` `https://discordapp.com/oauth2/authorize?client_id=${data.id}&scope=bot&permissions=0`

View File

@ -62,6 +62,7 @@ const Users: NextPage<UserProps> = ({ data }) => {
<br /> <br />
{data.github && ( {data.github && (
<Tag <Tag
newTab
text={ text={
<> <>
<i className="fab fa-github" /> {data.github} <i className="fab fa-github" /> {data.github}