feat: nextjs 14 (#20)
* feat: eslint update * feat: start over and layout * feat: nextjs13 boilerplate * feat: static homepage * feat: static pages * feat: static unirse * chore: remove old mui types * chore: moving from yarn to bun * chore: update dependencies * feat: static equipo unirse * feat: move appwrite to entgamers-database package * feat: improve ui components * feat: update dependencies * feat: static login & register pages * fix: remove unused logs * feat: state redux toolkit & feedback slice * fix: equipo div inside p * feat: session * feat: metadataBase * feat: basic apply form * feat: http verbs * feat: recover password flow * chore: updated dependencies * fix: fix image config * fix: api team-applications route * fix: remove not longer used fonts * feat: session with current user * fix: login form recuperar contraseña * feat: equipo pages now uses data from database package * feat: useManageErrors hook * feat: updated cuenta page * chore: updated old formik forms to use hooks * feat: updated dependencies &package name * fix: session related bugs * fix: missing helper texts * feat: static applications dashboard * chore: update dependencies * refactor: team applications * fix: session api update
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { cx } from '@/styled-system/css'
|
||||
import { alert, type AlertVariantProps } from '@/styled-system/recipes/alert'
|
||||
import { type MergeOmitting } from '@/types/utilities'
|
||||
import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes'
|
||||
import { FontAwesomeIcon, type FontAwesomeIconProps } from '@fortawesome/react-fontawesome'
|
||||
import { type DetailedHTMLProps, type FC, type HTMLAttributes, type ReactNode } from 'react'
|
||||
import IconButton, { type IconButtonProps } from './IconButton'
|
||||
|
||||
type ComposedAlertProps = MergeOmitting<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, AlertVariantProps>
|
||||
|
||||
const Alert: FC<ComposedAlertProps> = ({ className, children, ...props }) => {
|
||||
const [alertRecipeArgs, allOtherAlertProps] = alert.splitVariantProps(props)
|
||||
return (
|
||||
<div
|
||||
className={cx(alert(alertRecipeArgs).body, className)}
|
||||
{...allOtherAlertProps}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
type ComposedAlertCloseButtonProps = MergeOmitting<IconButtonProps, AlertVariantProps> & {
|
||||
children?: ReactNode
|
||||
}
|
||||
|
||||
export const AlertCloseButton: FC<ComposedAlertCloseButtonProps> = ({ children, className, ...props }) => {
|
||||
const [alertRecipeArgs, allOtherAlertProps] = alert.splitVariantProps(props)
|
||||
return (
|
||||
<IconButton
|
||||
className={cx(alert(alertRecipeArgs).closeButton, className)}
|
||||
{...allOtherAlertProps}
|
||||
>
|
||||
{children === undefined
|
||||
? <FontAwesomeIcon icon={faTimes as FontAwesomeIconProps['icon']} fixedWidth size='sm' />
|
||||
: children
|
||||
}
|
||||
</IconButton>
|
||||
)
|
||||
}
|
||||
|
||||
export default Alert
|
||||
Reference in New Issue
Block a user