Skip to content

Commit 417da38

Browse files
committed
[feat] #62 init upload screens
1 parent c5aa29a commit 417da38

File tree

5 files changed

+203
-5
lines changed

5 files changed

+203
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.record.upload
2+
3+
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.layout.Box
5+
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.PaddingValues
7+
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.material3.Text
10+
import androidx.compose.runtime.Composable
11+
import androidx.compose.ui.Alignment
12+
import androidx.compose.ui.Modifier
13+
import androidx.compose.ui.text.style.TextAlign
14+
import com.record.designsystem.component.button.RecordyButton
15+
import com.record.designsystem.component.navbar.TopNavigationBar
16+
import com.record.designsystem.theme.Background
17+
import com.record.designsystem.theme.Gray03
18+
import com.record.designsystem.theme.RecordyTheme
19+
@Composable
20+
fun CompletedUploadRoute(
21+
paddingValues: PaddingValues,
22+
){
23+
CompletedUploadScreen()
24+
}
25+
@Composable
26+
fun CompletedUploadScreen() {
27+
Box(
28+
modifier = Modifier
29+
.fillMaxSize()
30+
.background(Background),
31+
) {
32+
Column(
33+
modifier = Modifier
34+
.align(Alignment.TopCenter),
35+
) {
36+
TopNavigationBar(title = "영상 선택", enableGradation = true)
37+
Text(
38+
text = "ⓘ 최대 1분의 1080p 영상을 올려주세요.4",
39+
color = Gray03,
40+
style = RecordyTheme.typography.caption2,
41+
maxLines = 1,
42+
modifier = Modifier.fillMaxWidth(),
43+
textAlign = TextAlign.Center,
44+
)
45+
}
46+
RecordyButton(
47+
modifier = Modifier.align(Alignment.BottomCenter),
48+
text = "다음",
49+
enabled = true,
50+
onClick = { /*TODO*/ },
51+
)
52+
}
53+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.record.upload
2+
3+
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.layout.Box
5+
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.PaddingValues
7+
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.material3.Text
10+
import androidx.compose.runtime.Composable
11+
import androidx.compose.ui.Alignment
12+
import androidx.compose.ui.Modifier
13+
import androidx.compose.ui.text.style.TextAlign
14+
import com.record.designsystem.component.button.RecordyButton
15+
import com.record.designsystem.component.navbar.TopNavigationBar
16+
import com.record.designsystem.theme.Background
17+
import com.record.designsystem.theme.Gray03
18+
import com.record.designsystem.theme.RecordyTheme
19+
@Composable
20+
fun DefinedContentRoute(
21+
paddingValues: PaddingValues,
22+
navigateCompletedUpload: () -> Unit,
23+
){
24+
DefinedContentScreen()
25+
}
26+
@Composable
27+
fun DefinedContentScreen() {
28+
Box(
29+
modifier = Modifier
30+
.fillMaxSize()
31+
.background(Background),
32+
) {
33+
Column(
34+
modifier = Modifier
35+
.align(Alignment.TopCenter),
36+
) {
37+
TopNavigationBar(title = "영상 선택", enableGradation = true)
38+
Text(
39+
text = "ⓘ 최대 1분의 1080p 영상을 올려주세요.2",
40+
color = Gray03,
41+
style = RecordyTheme.typography.caption2,
42+
maxLines = 1,
43+
modifier = Modifier.fillMaxWidth(),
44+
textAlign = TextAlign.Center,
45+
)
46+
}
47+
RecordyButton(
48+
modifier = Modifier.align(Alignment.BottomCenter),
49+
text = "다음",
50+
enabled = true,
51+
onClick = { /*TODO*/ },
52+
)
53+
}
54+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.record.upload
2+
3+
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.layout.Box
5+
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.PaddingValues
7+
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.material3.Text
10+
import androidx.compose.runtime.Composable
11+
import androidx.compose.ui.Alignment
12+
import androidx.compose.ui.Modifier
13+
import androidx.compose.ui.text.style.TextAlign
14+
import com.record.designsystem.component.button.RecordyButton
15+
import com.record.designsystem.component.navbar.TopNavigationBar
16+
import com.record.designsystem.theme.Background
17+
import com.record.designsystem.theme.Gray03
18+
import com.record.designsystem.theme.RecordyTheme
19+
@Composable
20+
fun SelectedKeywordRoute(
21+
paddingValues: PaddingValues,
22+
navigateDefinedContent: () -> Unit,
23+
){
24+
SelectedKeywordScreen()
25+
}
26+
@Composable
27+
fun SelectedKeywordScreen() {
28+
Box(
29+
modifier = Modifier
30+
.fillMaxSize()
31+
.background(Background),
32+
) {
33+
Column(
34+
modifier = Modifier
35+
.align(Alignment.TopCenter),
36+
) {
37+
TopNavigationBar(title = "영상 선택", enableGradation = true)
38+
Text(
39+
text = "ⓘ 최대 1분의 1080p 영상을 올려주세요.1",
40+
color = Gray03,
41+
style = RecordyTheme.typography.caption2,
42+
maxLines = 1,
43+
modifier = Modifier.fillMaxWidth(),
44+
textAlign = TextAlign.Center,
45+
)
46+
}
47+
RecordyButton(
48+
modifier = Modifier.align(Alignment.BottomCenter),
49+
text = "다음",
50+
enabled = true,
51+
onClick = { /*TODO*/ },
52+
)
53+
}
54+
}

feature/upload/src/main/java/com/record/upload/VideoPickerScreen.kt

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.record.upload
33
import androidx.compose.foundation.background
44
import androidx.compose.foundation.layout.Box
55
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.PaddingValues
67
import androidx.compose.foundation.layout.fillMaxSize
78
import androidx.compose.foundation.layout.fillMaxWidth
89
import androidx.compose.material3.Text
@@ -16,6 +17,13 @@ import com.record.designsystem.theme.Background
1617
import com.record.designsystem.theme.Gray03
1718
import com.record.designsystem.theme.RecordyTheme
1819

20+
@Composable
21+
fun VideoPickerRoute(
22+
paddingValues: PaddingValues,
23+
navigateSelectedKeyword: () -> Unit,
24+
){
25+
VideoPickerScreen()
26+
}
1927
@Composable
2028
fun VideoPickerScreen() {
2129
Box(

feature/upload/src/main/java/com/record/upload/navigation/UploadNavigation.kt

+34-5
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,50 @@ import androidx.navigation.NavController
66
import androidx.navigation.NavGraphBuilder
77
import androidx.navigation.NavOptions
88
import androidx.navigation.compose.composable
9-
import com.record.upload.VideoPickerScreen
9+
import com.record.upload.CompletedUploadRoute
10+
import com.record.upload.DefinedContentRoute
11+
import com.record.upload.SelectedKeywordRoute
12+
import com.record.upload.VideoPickerRoute
1013

1114
fun NavController.navigateUpload(navOptions: NavOptions) {
12-
navigate(UploadRoute.route, navOptions)
15+
navigate(UploadRoute.ROUTE, navOptions)
1316
}
1417

1518
fun NavGraphBuilder.uploadNavGraph(
1619
padding: PaddingValues,
1720
modifier: Modifier = Modifier,
21+
navigateSelectedKeyword: () -> Unit,
22+
navigateDefinedContent: () -> Unit,
23+
navigateCompletedUpload: () -> Unit,
1824
) {
19-
composable(route = UploadRoute.route) {
20-
VideoPickerScreen()
25+
composable(route = UploadRoute.ROUTE) {
26+
VideoPickerRoute(
27+
paddingValues = padding,
28+
navigateSelectedKeyword = navigateSelectedKeyword
29+
)
30+
}
31+
composable(route = UploadRoute.SELECTED_KEYWORD) {
32+
SelectedKeywordRoute(
33+
paddingValues = padding,
34+
navigateDefinedContent = navigateDefinedContent
35+
)
36+
}
37+
composable(route = UploadRoute.DEFINED_CONTENT) {
38+
DefinedContentRoute(
39+
paddingValues = padding,
40+
navigateCompletedUpload=navigateCompletedUpload
41+
)
42+
}
43+
composable(route = UploadRoute.COMPLETED_UPLOAD) {
44+
CompletedUploadRoute(
45+
paddingValues = padding
46+
)
2147
}
2248
}
2349

2450
object UploadRoute {
25-
const val route = "upload"
51+
const val ROUTE = "upload"
52+
const val SELECTED_KEYWORD = "selected-keyword"
53+
const val DEFINED_CONTENT = "defined-content"
54+
const val COMPLETED_UPLOAD = "completed-upload"
2655
}

0 commit comments

Comments
 (0)