Skip to content

Commit

Permalink
Refactor widgets
Browse files Browse the repository at this point in the history
  • Loading branch information
XanderZhu committed Nov 19, 2023
1 parent 1f1b053 commit 0a7db3e
Show file tree
Hide file tree
Showing 9 changed files with 268 additions and 217 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.hyperskill.app.android.challenge.ui

import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme

@Composable
fun AnnouncementChallengeCard(
title: String,
dateText: String,
description: String,
timeTitle: String,
timeSubtitle: String,
modifier: Modifier = Modifier
) {
ChallengeScaffold(modifier) {
ChallengeHeader(
title = title,
dateText = dateText,
imageRes = org.hyperskill.app.android.R.drawable.img_challenge_announcment,
modifier = Modifier.fillMaxWidth()
)
ChallengeDescription(description)
ChallengeTimeText(title = timeTitle, subtitle = timeSubtitle)
}
}

@Preview()
@Composable
private fun AnnouncementChallengeCardPreview() {
HyperskillTheme {
AnnouncementChallengeCard(
title = ChallengeCardPreviewValues.TITLE,
dateText = ChallengeCardPreviewValues.DATE_TEXT,
description = ChallengeCardPreviewValues.DESCRIPTION,
timeTitle = ChallengeCardPreviewValues.TIME_TITLE,
timeSubtitle = ChallengeCardPreviewValues.TIME_SUBTITLE
)
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.hyperskill.app.android.challenge.ui

import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.ui.unit.dp

object ChallengeCardDefaults {
val paddingValues: PaddingValues = PaddingValues(20.dp)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.hyperskill.app.android.challenge.ui

object ChallengeCardPreviewValues {
const val TITLE = "Advent Streak Challenge"
const val DATE_TEXT = "6 Oct - 12 Oct"
const val DESCRIPTION = "Get ready to push your limits! Thrilling daily programming competition designed to test your coding skills and problem-solving abilities. What to Expect"
const val TIME_TITLE = "Start in"
const val TIME_SUBTITLE = "6 hrs 27 mins"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.hyperskill.app.android.challenge.ui

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import org.hyperskill.app.R
import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme

@Composable
fun ChallengeDateLabel(
text: String,
modifier: Modifier = Modifier
) {
Text(
text = text,
modifier = modifier
.clip(RoundedCornerShape(4.dp))
.background(colorResource(R.color.color_overlay_blue_alpha_12))
.padding(horizontal = 8.dp, vertical = 4.dp),
style = MaterialTheme.typography.caption,
color = colorResource(R.color.color_primary)
)
}

@Preview
@Composable
private fun DateLabelPreview() {
HyperskillTheme {
ChallengeDateLabel("6 Oct - 12 Oct")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.hyperskill.app.android.challenge.ui

import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.tooling.preview.Preview
import org.hyperskill.app.R
import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme

@Composable
fun ChallengeDescription(
description: String,
modifier: Modifier = Modifier
) {
Text(
text = description,
modifier = modifier,
style = MaterialTheme.typography.body1,
color = colorResource(id = R.color.color_on_surface_alpha_60)
)
}

@Preview
@Composable
fun ChallengeDescriptionPreview() {
HyperskillTheme {
ChallengeDescription(
description = ChallengeCardPreviewValues.DESCRIPTION
)
}
}
Loading

0 comments on commit 0a7db3e

Please sign in to comment.