()
| 44 | }); |
| 45 | |
| 46 | function ColorSchemeToggle() { |
| 47 | let {colorScheme, toggleColorScheme, systemColorScheme} = useSettings(); |
| 48 | let isOverriding = colorScheme !== systemColorScheme; |
| 49 | let label = isOverriding |
| 50 | ? `Using ${colorScheme} mode (press to follow system)` |
| 51 | : `Using system ${systemColorScheme} mode (press to switch)`; |
| 52 | let ref = useRef<HTMLButtonElement>(null); |
| 53 | let isDark = colorScheme === 'dark'; |
| 54 | |
| 55 | return ( |
| 56 | <Button |
| 57 | ref={ref} |
| 58 | aria-label={label} |
| 59 | onPress={toggleColorScheme} |
| 60 | className={renderProps => colorSchemeToggleStyles(renderProps)} |
| 61 | style={pressScale(ref)}> |
| 62 | <span className={iconContainerStyles}> |
| 63 | <Contrast |
| 64 | styles={whiteIconStyle} |
| 65 | UNSAFE_style={{ |
| 66 | position: 'absolute', |
| 67 | inset: 0, |
| 68 | opacity: isDark ? 0 : 1, |
| 69 | transform: isDark ? 'rotate(-90deg) scale(0.5)' : 'rotate(0deg) scale(1)', |
| 70 | transition: 'opacity 200ms ease-out, transform 200ms ease-out' |
| 71 | }} |
| 72 | /> |
| 73 | <Lighten |
| 74 | styles={whiteIconStyle} |
| 75 | UNSAFE_style={{ |
| 76 | position: 'absolute', |
| 77 | inset: 0, |
| 78 | opacity: isDark ? 1 : 0, |
| 79 | transform: isDark ? 'rotate(0deg) scale(1)' : 'rotate(90deg) scale(0.5)', |
| 80 | transition: 'opacity 200ms ease-out, transform 200ms ease-out' |
| 81 | }} |
| 82 | /> |
| 83 | </span> |
| 84 | </Button> |
| 85 | ); |
| 86 | } |
| 87 | |
| 88 | export default function HomeHeader() { |
| 89 | const [searchOpen, setSearchOpen] = useState(false); |
nothing calls this directly
no test coverage detected