diff --git a/src/renderer/features/player/components/playerbars.tsx b/src/renderer/features/player/components/playerbar.tsx similarity index 100% rename from src/renderer/features/player/components/playerbars.tsx rename to src/renderer/features/player/components/playerbar.tsx diff --git a/src/renderer/features/player/components/sliders.tsx b/src/renderer/features/player/components/slider.tsx similarity index 100% rename from src/renderer/features/player/components/sliders.tsx rename to src/renderer/features/player/components/slider.tsx diff --git a/src/renderer/features/sidebar/components/list-item.tsx b/src/renderer/features/sidebar/components/list-item.tsx deleted file mode 100644 index 8d97ca4d4..000000000 --- a/src/renderer/features/sidebar/components/list-item.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { ReactNode } from 'react'; -import { css } from '@emotion/react'; -import styled from '@emotion/styled'; -import { motion } from 'framer-motion'; -import { Link, LinkProps } from 'react-router-dom'; -import { fontInter } from '../../../styles'; - -interface ListItemProps { - children: ReactNode; - icon?: ReactNode; -} - -const StyledListItem = styled(motion.div)` - ${fontInter(600)} - display: flex; - align-items: center; - justify-content: space-between; -`; - -const ItemStyle = css` - display: flex; - gap: 1rem; - align-items: center; - width: 100%; - padding: 0.5rem 1rem; - color: var(--sidebar-btn-color); - transition: color 0.2s ease-in-out; - - &:hover { - color: var(--sidebar-btn-color-hover); - } -`; - -const Box = styled.div` - ${ItemStyle} -`; - -const ItemLink = styled(Link)` - ${ItemStyle} -`; - -export const ListItem = ({ icon, children, ...rest }: ListItemProps) => { - return {children}; -}; - -ListItem.Box = Box; - -ListItem.Link = ItemLink; - -ListItem.defaultProps = { - icon: <>, -}; diff --git a/src/renderer/features/sidebar/components/sidebar-item.tsx b/src/renderer/features/sidebar/components/sidebar-item.tsx new file mode 100644 index 000000000..2a17df637 --- /dev/null +++ b/src/renderer/features/sidebar/components/sidebar-item.tsx @@ -0,0 +1,71 @@ +import { ReactNode } from 'react'; +import { css } from '@emotion/react'; +import styled from '@emotion/styled'; +import { Link, LinkProps } from 'react-router-dom'; + +interface ListItemProps { + children: ReactNode; + disabled?: boolean; + to?: string; +} + +const StyledItem = styled.div` + display: flex; + width: 100%; + + &:focus-visible { + border: 1px solid var(--primary-color); + } +`; + +const ItemStyle = css` + display: flex; + width: 100%; + padding: 0.5rem 1rem; + color: var(--sidebar-btn-color); + border: 1px transparent solid; + transition: color 0.2s ease-in-out; + + &:hover { + color: var(--sidebar-btn-color-hover); + } +`; + +const Box = styled.div` + ${ItemStyle} +`; + +const ItemLink = styled(Link)` + opacity: ${(props) => props.disabled && 0.6}; + pointer-events: ${(props) => props.disabled && 'none'}; + + &:focus-visible { + border: 1px solid var(--primary-color); + } + + ${ItemStyle} +`; + +export const SidebarItem = ({ to, children, ...rest }: ListItemProps) => { + if (to) { + return ( + + {children} + + ); + } + return ( + + {children} + + ); +}; + +SidebarItem.Box = Box; + +SidebarItem.Link = ItemLink; + +SidebarItem.defaultProps = { + disabled: false, + to: undefined, +}; diff --git a/src/renderer/features/sidebar/components/sidebars.tsx b/src/renderer/features/sidebar/components/sidebar.tsx similarity index 100% rename from src/renderer/features/sidebar/components/sidebars.tsx rename to src/renderer/features/sidebar/components/sidebar.tsx