mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 21:27:01 +05:30
common: add common stringValue api
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
parent
4a40192647
commit
01ffc49e18
6 changed files with 83 additions and 0 deletions
|
@ -36,6 +36,7 @@ kotlin {
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(compose.runtime)
|
implementation(compose.runtime)
|
||||||
|
implementation(compose.ui)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package dev.msfjarvis.lobsters.utils
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import dev.msfjarvis.lobsters.common.R
|
||||||
|
|
||||||
|
private fun stringEnumMapper(stringEnum: StringEnum): Int {
|
||||||
|
return when (stringEnum) {
|
||||||
|
StringEnum.AddToSavedPosts -> R.string.add_to_saved_posts
|
||||||
|
StringEnum.AppName -> R.string.app_name
|
||||||
|
StringEnum.AvatarContentDescription -> R.string.avatar_content_description
|
||||||
|
StringEnum.HottestPosts -> R.string.hottest_posts
|
||||||
|
StringEnum.Loading -> R.string.loading
|
||||||
|
StringEnum.NoSavedPost -> R.string.no_saved_posts
|
||||||
|
StringEnum.OpenComments -> R.string.open_comments
|
||||||
|
StringEnum.RefreshPostsContentDescription -> R.string.refresh_posts_content_description
|
||||||
|
StringEnum.RemoveFromSavedPosts -> R.string.remove_from_saved_posts
|
||||||
|
StringEnum.SubmittedBy -> R.string.submitted_by
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String {
|
||||||
|
return stringResource(stringEnumMapper(enum), formatArgs)
|
||||||
|
}
|
13
common/src/androidMain/res/values/strings.xml
Normal file
13
common/src/androidMain/res/values/strings.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Claw</string>
|
||||||
|
<string name="loading">Loading posts…</string>
|
||||||
|
<string name="no_saved_posts">You don\'t have any saved posts</string>
|
||||||
|
<string name="hottest_posts">Hottest</string>
|
||||||
|
<string name="saved_posts">Saved</string>
|
||||||
|
<string name="submitted_by">submitted by %1$s</string>
|
||||||
|
<string name="avatar_content_description">%1$s\'s avatar</string>
|
||||||
|
<string name="add_to_saved_posts">Add to saved posts</string>
|
||||||
|
<string name="remove_from_saved_posts">Remove from saved posts</string>
|
||||||
|
<string name="refresh_posts_content_description">Refresh posts</string>
|
||||||
|
<string name="open_comments">Open comments</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,15 @@
|
||||||
|
package dev.msfjarvis.lobsters.utils
|
||||||
|
|
||||||
|
enum class StringEnum {
|
||||||
|
AddToSavedPosts,
|
||||||
|
AppName,
|
||||||
|
AvatarContentDescription,
|
||||||
|
HottestPosts,
|
||||||
|
Loading,
|
||||||
|
NoSavedPost,
|
||||||
|
OpenComments,
|
||||||
|
RefreshPostsContentDescription,
|
||||||
|
RemoveFromSavedPosts,
|
||||||
|
SubmittedBy,
|
||||||
|
;
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
package dev.msfjarvis.lobsters.utils
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
expect fun stringValue(enum: StringEnum, vararg formatArgs: Any): String
|
|
@ -0,0 +1,23 @@
|
||||||
|
package dev.msfjarvis.lobsters.utils
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
|
||||||
|
private fun stringEnumMapper(stringEnum: StringEnum): String {
|
||||||
|
return when (stringEnum) {
|
||||||
|
StringEnum.AddToSavedPosts -> "Add to saved posts"
|
||||||
|
StringEnum.AppName -> "Claw"
|
||||||
|
StringEnum.AvatarContentDescription -> "%1s's avatar"
|
||||||
|
StringEnum.HottestPosts -> "Hottest"
|
||||||
|
StringEnum.Loading -> "Loading posts…"
|
||||||
|
StringEnum.NoSavedPost -> "You don't have any saved posts"
|
||||||
|
StringEnum.OpenComments -> "Open comments"
|
||||||
|
StringEnum.RefreshPostsContentDescription -> "Refresh posts"
|
||||||
|
StringEnum.RemoveFromSavedPosts -> "Remove from saved posts"
|
||||||
|
StringEnum.SubmittedBy -> "submitted by %1s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String {
|
||||||
|
return stringEnumMapper(enum).format(formatArgs)
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue