Когда дело доходит до проверки реквизита в Styled Components, мне кажется, что вещи могут быть намного СУЩЕСТВУЮЩИМ.
Например, давайте посмотрим на следующий код:
${props => props.white && `color: ${colors.white}`}
${props => props.light && `color: ${colors.light}`}
${props => props.grey && `color: ${colors.grey.base}`}
${props => props.dark && `color: ${colors.dark}`}
${props => props.black && `color: ${colors.black}`}
${props => props.info && `color: ${colors.info}`}
${props => props.success && `color: ${colors.success}`}
${props => props.warning && `color: ${colors.warning}`}
${props => props.error && `color: ${colors.error}`}
${props => props.link && `color: ${colors.link.base}`}
Это для <Text>
компонента, который я создаю - он просто проверяет изменения цвета текста в зависимости от того, какой реквизит я использую. Например: <Text light>
даст ему цвет light
, который я установил в моем объекте colors
из моего файла переменных.
Теперь этот код довольно повторяющийся. Единственное, что меняется в каждой строке - это название цвета, иначе оно точно такое же.
Любые идеи о том, как я могу сделать этот код DRYer?