а ты о чем тогда?
Думаю о том, что styled есть в пакете mui. И нет нужды тянуть библиотеку styled-components. import { styled } from "@mui/material"; export const AttachmentName = styled("span")` color: ${({ theme }) => theme.palette.text.primary}; `;
styled(span)(({theme}) => ({ color: theme.foo, })); Читабельнее же и не нужно на каждое поле колбеки вешать
Это статический цвет, задал - и забыл. А если в зависимости от состояния цвет определять надо?
Думаю дело привычки + мне не часто приходится вот так докручивать что-то таким образом. Специфика проекта. Но в целом да. Наверное объект удобнее, особенно если в зависимости от флага целую пачку свойств нужно применить.
styled(span)<{colorGrade: number}>(({theme, colorGrade}) => ({ color: theme.palette.primary[colorGrade] }));
ну да, тернарку в объекте нарисовал и все
styled(span)(({theme, isActive}) => ({ color: isActive ? theme.foo : theme.bar, }));
Только shouldForwardProp еще нужно
Ну или там если совсем умопомрачительно сложная логика, то можно до return сосчитать а потом просто присвоить.
Да, если работаешь с объектом, то вычудить можно много чего, конечно.
Обсуждают сегодня