callstack / callstack/react-theme-provider

Preferred light/dark theme?

Aberta
#55 2 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
JavaScript
Estrelas
467
Forks
53
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

## Describe the feature

It'd be nice to automatically be able to accommodate a user's preferred light/dark theme preferences.

Perhaps, simplifying the check of `uiMode && UI_MODE_NIGHT_MASK` [on Android](https://developer.android.com/reference/android/content/res/Configuration.html#uiMode) and `traitCollection.userInterfaceStyle` [on iOS](https://developer.apple.com/documentation/uikit/uiuserinterfacestyle).

These both have `undefined`/`unspecified`, `light`, and `dark`/`night`.

Unfortunately, the [built-in react-native uiMode](https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java#L47) doesn't give this information.

## Motivation

With iOS 13 and Android Q making this sort of theming more integrated (and Google and Apple's own apps supporting the ability to switch at the OS level), it'd be nice to automatically detect what theme the user wants.

I'd rather not force a user to fumble through app settings to configure the theme if they've already got an option to specify it at the OS level.

## Related Issues

I didn't see any at first glance, but I may have missed them.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Start by reviewing React Native's AndroidInfoModule entry point and the Android uiMode and iOS traitCollection.userInterfaceStyle APIs cited in the issue. The work is done when the theme provider can distinguish unspecified, light, and dark preferences on both platforms, with behavior covered by appropriate tests.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
android, ios, javascript, react-native
Domínio
mobile
Tipo de issue
Funcionalidade
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
42/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.