@@ -59,6 +59,7 @@ import org.koin.compose.koinInject
5959
6060@Composable
6161fun ApplicationScope.DesktopApp () = WithKoin {
62+
6263 val preferencesDataSource = koinInject<PreferencesDataSource >()
6364 val preferences by preferencesDataSource.flow.collectAsState()
6465
@@ -85,68 +86,77 @@ fun ApplicationScope.DesktopApp() = WithKoin {
8586}
8687
8788@Composable
88- private fun FrameWindowScope.HeaderImpl () = NeoHeader { padding ->
89+ private fun FrameWindowScope.HeaderImpl () {
8990
9091 val preferencesDataSource = koinInject<PreferencesDataSource >()
9192 val preferences by preferencesDataSource.flow.collectAsStateWithLifecycle()
9293
93- Text (
94- text = stringResource(Res .string.app_name),
95- modifier = Modifier .align(
96- Alignment .Center
97- )
98- )
99-
100- Row (
101- modifier = Modifier
102- .padding(padding)
103- .padding(horizontal = dimensions.medium)
104- .align(Alignment .CenterEnd ),
105- horizontalArrangement = Arrangement .spacedBy(dimensions.medium)
106- ) {
107- val uriHandler = LocalUriHandler .current
94+ NeoHeader (
95+ colorTheme = when (preferences.colorTheme) {
96+ Preferences .ColorTheme .SYSTEM -> rememberColorTheme()
97+ Preferences .ColorTheme .LIGHT -> ColorTheme .LIGHT
98+ Preferences .ColorTheme .DARK -> ColorTheme .DARK
99+ }
100+ ) { padding ->
108101
109- Icon (
110- painter = painterResource(Res .drawable.github),
111- contentDescription = null ,
112- tint = colorScheme.onSurface,
113- modifier = Modifier
114- .clip(CircleShape )
115- .clickable(
116- onClick = {
117- uriHandler.openUri(
118- uri = " https://github.com/NeoUtils/NeoRegex"
119- )
120- }
121- )
122- .padding(dimensions.medium)
123- .aspectRatio(ratio = 1f )
102+ Text (
103+ text = stringResource(Res .string.app_name),
104+ modifier = Modifier .align(
105+ Alignment .Center
106+ )
124107 )
125108
126- Icon (
127- painter = when (preferences.colorTheme) {
128- Preferences .ColorTheme .SYSTEM -> painterResource(Res .drawable.contrast)
129- Preferences .ColorTheme .LIGHT -> painterResource(Res .drawable.light_theme)
130- Preferences .ColorTheme .DARK -> painterResource(Res .drawable.dark_theme)
131- },
132- contentDescription = null ,
109+ Row (
133110 modifier = Modifier
134- .clip(CircleShape )
135- .clickable(
136- onClick = {
137- preferencesDataSource.update {
138- it.copy(
139- colorTheme = when (it.colorTheme) {
140- Preferences .ColorTheme .SYSTEM -> Preferences .ColorTheme .LIGHT
141- Preferences .ColorTheme .LIGHT -> Preferences .ColorTheme .DARK
142- Preferences .ColorTheme .DARK -> Preferences .ColorTheme .SYSTEM
143- }
111+ .padding(padding)
112+ .padding(horizontal = dimensions.medium)
113+ .align(Alignment .CenterEnd ),
114+ horizontalArrangement = Arrangement .spacedBy(dimensions.medium)
115+ ) {
116+ val uriHandler = LocalUriHandler .current
117+
118+ Icon (
119+ painter = painterResource(Res .drawable.github),
120+ contentDescription = null ,
121+ tint = colorScheme.onSurface,
122+ modifier = Modifier
123+ .clip(CircleShape )
124+ .clickable(
125+ onClick = {
126+ uriHandler.openUri(
127+ uri = " https://github.com/NeoUtils/NeoRegex"
144128 )
145129 }
146- }
147- )
148- .padding(dimensions.medium)
149- .aspectRatio(ratio = 1f )
150- )
130+ )
131+ .padding(dimensions.medium)
132+ .aspectRatio(ratio = 1f )
133+ )
134+
135+ Icon (
136+ painter = when (preferences.colorTheme) {
137+ Preferences .ColorTheme .SYSTEM -> painterResource(Res .drawable.contrast)
138+ Preferences .ColorTheme .LIGHT -> painterResource(Res .drawable.light_theme)
139+ Preferences .ColorTheme .DARK -> painterResource(Res .drawable.dark_theme)
140+ },
141+ contentDescription = null ,
142+ modifier = Modifier
143+ .clip(CircleShape )
144+ .clickable(
145+ onClick = {
146+ preferencesDataSource.update {
147+ it.copy(
148+ colorTheme = when (it.colorTheme) {
149+ Preferences .ColorTheme .SYSTEM -> Preferences .ColorTheme .LIGHT
150+ Preferences .ColorTheme .LIGHT -> Preferences .ColorTheme .DARK
151+ Preferences .ColorTheme .DARK -> Preferences .ColorTheme .SYSTEM
152+ }
153+ )
154+ }
155+ }
156+ )
157+ .padding(dimensions.medium)
158+ .aspectRatio(ratio = 1f )
159+ )
160+ }
151161 }
152- }
162+ }
0 commit comments