Skip to content

Conversation

@vvan2
Copy link
Member

@vvan2 vvan2 commented Oct 27, 2025

ISSUE

❗ WORK DESCRIPTIONAdd commentMore actions

  • Icon,img 추가
  • home 컴포넌트 작업
  • home 뷰 작업

📸 SCREENSHOT

Android.Emulator.-.google_5554.2025-10-27.14-29-57.mp4

📢 TO REVIEWERS

  • 서버에서 받아오는 데이터가 확정이 안나서, text 로 처리된게 많습니다. 서버연동시 수정할 예정입니다

Summary by CodeRabbit

Release Notes

  • New Features
    • Redesigned Home screen with carousel for featured content display
    • Added image carousel with page indicators for browsing content
    • Introduced user profile card display in horizontal layout
    • Added collapsible content sections with "All" buttons to view complete listings
    • Implemented post list functionality with navigation capabilities
    • Added bottom section with terms, privacy policies, and review guidelines links
    • Expanded device compatibility support across multiple brands and models

@vvan2 vvan2 requested a review from dmp100 October 27, 2025 05:31
@vvan2 vvan2 self-assigned this Oct 27, 2025
@vvan2 vvan2 added feature ✨ 기능 구현 주완🐹 주완 전용 라벨 labels Oct 27, 2025
@vvan2 vvan2 linked an issue Oct 27, 2025 that may be closed by this pull request
1 task
@coderabbitai
Copy link

coderabbitai bot commented Oct 27, 2025

Walkthrough

This PR implements the main Home screen UI for the application, replacing a placeholder Text component with a fully composed LazyColumn layout featuring multiple UI components including carousel, content sections, user cards, post lists, and bottom navigation content. Additionally, the device streaming configuration is expanded with numerous device entries, and supporting drawable resources and string values are added.

Changes

Cohort / File(s) Summary
Device Configuration Update
.idea/caches/deviceStreaming.xml
Expanded device list with multiple new device entries (Samsung, OPPO, OnePlus, Google, Motorola, Xiaomi, vivo) with EULA access status metadata; removed one previous entry.
Main Screen Implementation
app/src/main/java/com/hsLink/hslink/presentation/home/HomeScreen.kt
Replaced placeholder Text rendering with full LazyColumn-based composition including carousel, content fields, cards, post list, dividers, and bottom content sections.
UI Components
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt, HomeContentField.kt, HomeCardItem.kt, HomePostContainer.kt, HomeBottomContent.kt
Five new Compose UI components: horizontal pager with page indicator, content section header with "All" button, user profile card with ellipsis text, post list with dividers, and bottom footer with logo and clickable policy links.
Vector Drawables
app/src/main/res/drawable/ic_home_arrow_right.xml, ic_home_post_arrow.xml, ic_home_textall_arrow.xml
Three new arrow icon vector resources for navigation indicators and section headers.
String Resources
app/src/main/res/values/strings.xml
Added string resource home_content_field_all for "All" button label.

Sequence Diagram

sequenceDiagram
    participant HomeScreen
    participant LazyColumn
    participant HomeCarousel
    participant HomeContentField
    participant HomeCardItem
    participant HomePostContainer
    participant HomeBottomContent
    
    HomeScreen->>LazyColumn: render with PaddingValues
    LazyColumn->>HomeCarousel: display image pager
    HomeCarousel-->>LazyColumn: show page indicator
    LazyColumn->>HomeContentField: display section header
    HomeContentField-->>LazyColumn: show "All" with arrow
    LazyColumn->>HomeCardItem: render user profile cards
    HomeCardItem-->>LazyColumn: display user info + icon
    LazyColumn->>HomePostContainer: display post list
    HomePostContainer-->>LazyColumn: show posts with dividers
    LazyColumn->>HomeBottomContent: display footer
    HomeBottomContent-->>LazyColumn: show logo + policy links
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • HomeScreen.kt: Verify LazyColumn composition structure, proper padding application, and correct component ordering
  • UI Components (×5): Review new Compose patterns, modifier usage, theme color consistency, and text overflow handling
  • Device Streaming XML: Validate XML structure and device entry formatting for large addition
  • Resource references: Confirm drawable and string IDs are properly referenced and available in all components

Possibly related PRs

Suggested reviewers

  • dmp100

Poem

🐰 A carousel spins, cards dance in a row,
The home screen is coming alive with a glow!
With arrows and icons and policy links,
The UI's composed faster than you blink—
✨ Homeward bound in Compose it goes! 🏠

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning The PR includes a significant out-of-scope change: modifications to .idea/caches/deviceStreaming.xml, which is an IDE configuration/cache file related to device streaming preferences. This change is unrelated to the objective of implementing the home view (issue #11) and appears to have been committed accidentally. All other changes—including home screen UI components, drawable resources, and string resources—are directly scoped to the home view implementation feature.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The PR title "[feat/#11] 홈 화면 작업" (Home screen work) directly and clearly relates to the main change in the changeset. The raw summary confirms that the primary changes involve implementing the home screen UI through multiple new composable components (HomeScreen, HomeBottomContent, HomeCardItem, HomeCarousel, HomeContentField, HomePostContainer) plus supporting resources. The title accurately reflects this main objective with concise, specific language that a teammate reviewing the commit history would immediately understand as home screen implementation work.
Linked Issues Check ✅ Passed The linked issue #11 requests implementation of the main home view ("메인 홈 뷰 작업"). The PR clearly fulfills this requirement through comprehensive changes to HomeScreen.kt and creation of multiple UI components (HomeBottomContent, HomeCardItem, HomeCarousel, HomeContentField, HomePostContainer) that together form a complete home view implementation. The raw summary confirms these components constitute a full scrollable home screen layout with carousel, content sections, card items, and post list—directly addressing the issue's objective.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/#11-home-view

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (14)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt (1)

54-58: Consider using ContentScale.Crop for better aspect ratio preservation.

Currently using ContentScale.FillBounds may distort images that don't match the 180dp height aspect ratio. Consider using ContentScale.Crop to maintain aspect ratios while filling the space.

Apply this diff:

-                contentScale = ContentScale.FillBounds,
+                contentScale = ContentScale.Crop,
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeBottomContent.kt (1)

53-64: Consider separate click handlers for each link.

Both clickable texts currently use the same onClick callback, which means they'll trigger the same action. For better flexibility and to allow different navigation destinations, consider accepting separate callbacks.

Example refactor:

 @Composable
 fun HomeBottomContent(
-    onClick: () -> Unit,
+    onTermsClick: () -> Unit,
+    onReviewPolicyClick: () -> Unit,
     modifier: Modifier = Modifier,
 ) {
     Column(
         ...
     ) {
         ...
         Text(
             text = "이용약관 및 개인정보 취급방침",
             color = HsLinkTheme.colors.Grey400,
             style = HsLinkTheme.typography.btm_M,
-            modifier = Modifier.noRippleClickable(onClick = onClick)
+            modifier = Modifier.noRippleClickable(onClick = onTermsClick)
         )
         Text(
             text = "리뷰운영정책",
             color = HsLinkTheme.colors.Grey400,
             style = HsLinkTheme.typography.btm_M,
-            modifier = Modifier.noRippleClickable(onClick = onClick)
+            modifier = Modifier.noRippleClickable(onClick = onReviewPolicyClick)
         )
     }
 }
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCardItem.kt (2)

75-80: Minor formatting inconsistency.

Line 78 places style, maxLines, and overflow on a single line, while the previous text fields (lines 59-65, 67-73) split these across multiple lines. Consider consistent formatting for better readability.

Apply this diff:

             Text(
                 text = userInfo,
                 color = HsLinkTheme.colors.Grey400,
-                style = HsLinkTheme.typography.caption_12Normal, maxLines = 1,
+                style = HsLinkTheme.typography.caption_12Normal,
+                maxLines = 1,
                 overflow = TextOverflow.Ellipsis
             )

83-83: Consider removing weight(1f) from the Spacer.

With both the Column (line 56) and Spacer having weight(1f), they'll each consume 50% of available space, creating a large gap between the user info and the arrow icon. Typically, you'd want the Column to fill available space and the icon to be right-aligned without extra spacing.

Apply this diff:

-        Spacer(modifier = Modifier.weight(1f))
+        Spacer(modifier = Modifier)

Or simply remove the Spacer if no minimum spacing is needed:

-        Spacer(modifier = Modifier.weight(1f))
-
         Icon(
app/src/main/java/com/hsLink/hslink/presentation/home/HomeScreen.kt (7)

37-44: Avoid re-wrapping the app theme at the Route level

Wrapping HsLinkTheme here can duplicate status-bar SideEffect and lead to nested themes. Prefer a single theme at the app root; keep previews themed locally.

If the app already wraps the NavHost with HsLinkTheme, drop the theme here:

-@Composable
-fun HomeRoute(
-    paddingValues: PaddingValues,
-) {
-    HsLinkTheme {
-        HomeScreen(paddingValues)
-    }
-}
+@Composable
+fun HomeRoute(
+    paddingValues: PaddingValues,
+) {
+    HomeScreen(paddingValues)
+}

61-69: Prevent logo distortion in TopBar

ContentScale.FillBounds will stretch the logo. Use Fit to preserve aspect ratio.

 Image(
     painter = painterResource(id = R.drawable.img_home_logo),
     contentDescription = null,
     modifier = Modifier
         .height(48.dp)
         .width(92.dp),
-    contentScale = ContentScale.FillBounds,
+    contentScale = ContentScale.Fit,
 )

86-94: Wire up “전체보기” action for this section

HomeContentField shows an “전체보기” affordance but it’s not clickable. Expose an onAllClick lambda and pass it from here.

In HomeScreen:

 HomeContentField(
   mainText = "멘토링 신청",
   subText = "한성선배님께 멘토링을\n신청해보세요!",
+  onAllClick = { /* TODO: navigate to mentoring list */ },
 )

Change the component API (see comment in HomeContentField.kt) to accept onAllClick: () -> Unit = {} and make the trailing "전체보기" + arrow clickable.


98-104: HomeCardItem layout likely over-constrains content width

HomeCardItem internally uses Column.weight(1f) plus Spacer.weight(1f), which splits remaining width in half and can truncate text unnecessarily. Prefer a single weighted content column and a fixed Spacer before the trailing Icon.

Proposed change in app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCardItem.kt:

-        Column(
-            modifier = Modifier.weight(1f),
+        Column(
+            modifier = Modifier.weight(1f),
             verticalArrangement = Arrangement.spacedBy(4.dp)
         ) { /* ... */ }
-
-        Spacer(modifier = Modifier.weight(1f))
+        Spacer(modifier = Modifier.width(8.dp))

Also applies to: 161-168


118-149: Avoid rebuilding the posts list on every recomposition

Wrap the static list with remember (or provide from ViewModel/state) to reduce allocations.

+import androidx.compose.runtime.remember
@@
-            HomePostContainer(
-                posts = listOf(
+            HomePostContainer(
+                posts = remember {
+                    listOf(
                     HomePost(
                         id = "1",
                         title = "2026 카카오 신입 공채",
                         route = "route1"
                     ),
                     HomePost(
                         id = "2",
                         title = "선배가 알려주는 이력서 꿀팁",
                         route = "route2"
                     ),
                     HomePost(
                         id = "3",
                         title = "선배가 알려주는 이력서 꿀팁",
                         route = "route3"
                     ),
                     HomePost(
                         id = "4",
                         title = "선배가 알려주는 이력서 꿀팁",
                         route = "route4"
                     ),
                     HomePost(
                         id = "5",
                         title = "선배가 알려주는 이력서 꿀팁",
                         route = "route5"
                     )
-
-                ),
+                    )
+                },
                 onPostClick = {},
                 modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp)
             )

89-92: Externalize user-facing strings for i18n

These literals should live in strings.xml to support localization.

Example:

  • strings.xml: add home_section_mentoring_title, home_section_mentoring_sub, etc.
  • Replace hard-coded strings with stringResource(id = …).

Also applies to: 109-113, 155-159


179-183: Hook up bottom links to real actions

onClick is empty. Provide dedicated callbacks (e.g., onTermsClick, onPolicyClick) or route via NavController.

I can draft a small nav wiring if you share the destination routes.

app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeContentField.kt (3)

21-26: Add onAllClick and make the trailing affordance accessible

Expose a click handler and wrap “전체보기” + arrow in a single clickable Row with proper semantics.

 @Composable
-fun HomeContentField(
-    mainText: String,
-    subText: String,
-    modifier: Modifier = Modifier,
-) {
+fun HomeContentField(
+    mainText: String,
+    subText: String,
+    modifier: Modifier = Modifier,
+    onAllClick: () -> Unit = {},
+) {
@@
-        Row(
-            modifier = Modifier
-                .fillMaxWidth(),
-        ) {
+        Row(
+            modifier = Modifier.fillMaxWidth(),
+        ) {
             Text(
                 text = subText,
                 color = HsLinkTheme.colors.Grey700,
                 style = HsLinkTheme.typography.title_20Strong
             )
 
             Spacer(modifier = Modifier.weight(1F))
 
-            Text(
-                text = stringResource(id = R.string.home_content_field_all),
-                color = HsLinkTheme.colors.DeepBlue500,
-                style = HsLinkTheme.typography.btm_M
-            )
-
-            Icon(
-                imageVector = ImageVector.vectorResource(id = R.drawable.ic_home_textall_arrow),
-                contentDescription = null,
-                tint = HsLinkTheme.colors.DeepBlue500,
-            )
+            Row(
+                modifier = Modifier
+                    .padding(start = 8.dp)
+                    .clickable(onClick = onAllClick),
+                verticalAlignment = Alignment.CenterVertically
+            ) {
+                Text(
+                    text = stringResource(id = R.string.home_content_field_all),
+                    color = HsLinkTheme.colors.DeepBlue500,
+                    style = HsLinkTheme.typography.btm_M
+                )
+                Icon(
+                    imageVector = ImageVector.vectorResource(id = R.drawable.ic_home_textall_arrow),
+                    contentDescription = null,
+                    tint = HsLinkTheme.colors.DeepBlue500,
+                )
+            }
         }

Remember to add imports:

import androidx.compose.foundation.clickable
import androidx.compose.ui.Alignment

And update call sites (e.g., in HomeScreen) to pass onAllClick as needed.

Also applies to: 38-61


38-46: Center-align the row content vertically

Keeps the “전체보기” affordance vertically aligned with subText.

-        Row(
-            modifier = Modifier
-                .fillMaxWidth(),
-        ) {
+        Row(
+            modifier = Modifier.fillMaxWidth(),
+            verticalAlignment = Alignment.CenterVertically
+        ) {

Add:

import androidx.compose.ui.Alignment

65-74: Preview: add onAllClick for completeness

Hook the preview to the new API to catch compile issues early.

-HsLinkTheme {
-    HomeContentField(
-        mainText = "Main Text",
-        subText = "Sub Text",
-    )
-}
+HsLinkTheme {
+    HomeContentField(
+        mainText = "Main Text",
+        subText = "Sub Text",
+        onAllClick = {}
+    )
+}
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d95c05b and 1b5f2e3.

⛔ Files ignored due to path filters (1)
  • app/src/main/res/drawable/img_home_logo.png is excluded by !**/*.png
📒 Files selected for processing (11)
  • .idea/caches/deviceStreaming.xml (6 hunks)
  • app/src/main/java/com/hsLink/hslink/presentation/home/HomeScreen.kt (2 hunks)
  • app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeBottomContent.kt (1 hunks)
  • app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCardItem.kt (1 hunks)
  • app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt (1 hunks)
  • app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeContentField.kt (1 hunks)
  • app/src/main/java/com/hsLink/hslink/presentation/home/component/HomePostContainer.kt (1 hunks)
  • app/src/main/res/drawable/ic_home_arrow_right.xml (1 hunks)
  • app/src/main/res/drawable/ic_home_post_arrow.xml (1 hunks)
  • app/src/main/res/drawable/ic_home_textall_arrow.xml (1 hunks)
  • app/src/main/res/values/strings.xml (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (6)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeContentField.kt (1)
app/src/main/java/com/hsLink/hslink/core/designsystem/theme/Theme.kt (1)
  • HsLinkTheme (37-57)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt (1)
app/src/main/java/com/hsLink/hslink/core/designsystem/theme/Theme.kt (1)
  • HsLinkTheme (37-57)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeBottomContent.kt (1)
app/src/main/java/com/hsLink/hslink/core/designsystem/theme/Theme.kt (1)
  • HsLinkTheme (37-57)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomePostContainer.kt (1)
app/src/main/java/com/hsLink/hslink/core/designsystem/theme/Theme.kt (1)
  • HsLinkTheme (37-57)
app/src/main/java/com/hsLink/hslink/presentation/home/HomeScreen.kt (7)
app/src/main/java/com/hsLink/hslink/core/designsystem/theme/Theme.kt (1)
  • HsLinkTheme (37-57)
app/src/main/java/com/hsLink/hslink/core/designsystem/component/HsLinkTopBar.kt (1)
  • HsLinkTopBar (21-61)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt (1)
  • HomeCarousel (38-68)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeContentField.kt (1)
  • HomeContentField (21-63)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCardItem.kt (1)
  • HomeCardItem (37-91)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomePostContainer.kt (1)
  • HomePostContainer (45-75)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeBottomContent.kt (1)
  • HomeBottomContent (32-67)
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCardItem.kt (1)
app/src/main/java/com/hsLink/hslink/core/designsystem/theme/Theme.kt (1)
  • HsLinkTheme (37-57)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build-and-test
🔇 Additional comments (14)
.idea/caches/deviceStreaming.xml (1)

1-1242: The original review comment is incorrect. The file is properly gitignored and is not being committed.

The verification confirms that:

  • .idea/ is properly configured in .gitignore
  • Git status shows the file is not staged and the working tree is clean
  • The file is not being tracked by version control

The appearance of this file in the PR review is a display artifact from the review interface showing local IDE state, not an actual commit. No action is required.

Likely an incorrect or invalid review comment.

app/src/main/res/drawable/ic_home_arrow_right.xml (1)

1-9: LGTM!

The vector drawable is properly defined with standard Android XML attributes and will serve as a navigation indicator in the Home UI components.

app/src/main/res/values/strings.xml (1)

10-10: LGTM!

The string resource addition follows Android conventions and provides localization for the "View All" action in the Home screen.

app/src/main/res/drawable/ic_home_textall_arrow.xml (1)

1-9: LGTM!

The vector drawable is properly defined. The blue color (#0047BB) provides visual distinction from other arrow icons in the Home UI.

app/src/main/res/drawable/ic_home_post_arrow.xml (1)

1-9: LGTM!

The vector drawable is properly defined with a slightly larger size (24dp) for use in post list items.

app/src/main/java/com/hsLink/hslink/presentation/home/component/HomePostContainer.kt (3)

39-43: LGTM!

The HomePost data class is well-defined with clear fields for representing post items in the UI.


45-75: LGTM!

The HomePostContainer implementation is correct:

  • Properly handles the list rendering with dividers between items
  • Correctly avoids adding a divider after the last item (line 67)
  • Uses appropriate theme colors and spacing

77-103: LGTM!

The HomePostContent composable correctly implements the individual post item with:

  • Proper clickable handling using noRippleClickable
  • Spacer with weight to push the icon to the right
  • Color.Unspecified tint to preserve the drawable's original color
app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt (2)

38-68: LGTM!

The HomeCarousel implementation correctly uses HorizontalPager with proper state management and image loading via Coil's AsyncImage.


70-89: LGTM!

The indicator correctly displays the current page number (1-indexed for user display) with appropriate styling.

app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeBottomContent.kt (1)

32-67: LGTM!

The component layout and styling are well-implemented with proper use of theme colors and spacing.

app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCardItem.kt (1)

37-91: LGTM!

The card item component is well-structured with proper text overflow handling and theme integration.

app/src/main/java/com/hsLink/hslink/presentation/home/HomeScreen.kt (1)

51-56: Structure looks solid

Using LazyColumn with padding(paddingValues) and themed background is clean and matches Scaffold usage.

app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeContentField.kt (1)

56-60: Resources verified and accessible

Both the drawable ic_home_textall_arrow and the string home_content_field_all exist in the codebase and will be accessible at runtime. The drawable is located at app/src/main/res/drawable/ic_home_textall_arrow.xml and the string is defined in app/src/main/res/values/strings.xml. No locale-specific resource variants are present, indicating single-language resource configuration.

Comment on lines +76 to +84
item {
HomeCarousel(
pagerImages = listOf(
"https://cdn.edujin.co.kr/news/photo/202209/39788_81397_67.png",
"image2",
"image3"
),
)
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Replace invalid carousel items or add image placeholders

The entries "image2" and "image3" are not valid URIs and will fail image loading. Either supply valid URLs or ensure HomeCarousel’s AsyncImage has placeholder/error.

Run to confirm placeholder/error handling in HomeCarousel:

Expected: AsyncImage configured with placeholder() and error() or a fallback painter.


🏁 Script executed:

#!/bin/bash
rg -n -C2 'AsyncImage\(' app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt

Length of output: 191


Running verification to see the complete AsyncImage configuration:


---

🏁 Script executed:

```shell
#!/bin/bash
rg -n -C5 'AsyncImage\(' app/src/main/java/com/hsLink/hslink/presentation/home/component/HomeCarousel.kt

Length of output: 385


Add placeholder/error handling or replace invalid carousel URLs

The AsyncImage in HomeCarousel lacks placeholder/error parameters. Invalid URIs ("image2", "image3") will fail to load with no visual fallback. Either supply valid URLs or add placeholder() and error() parameters to AsyncImage (lines 54-58 of HomeCarousel.kt).

🤖 Prompt for AI Agents
In app/src/main/java/com/hsLink/hslink/presentation/home/HomeScreen.kt around
lines 76-84, HomeCarousel is being given invalid image URIs ("image2", "image3")
and the AsyncImage used inside HomeCarousel (see HomeCarousel.kt lines ~54-58)
has no placeholder/error handling; update either the passed pagerImages to valid
URLs or, preferably, modify the AsyncImage call to include placeholder() and
error() parameters (using a local drawable/painter or default composable) and
optionally a fallback() for nulls so users see a sensible visual when loading
fails; ensure the placeholder and error painters are imported and used
consistently and that any test images are replaced or guarded before being
passed in.

@vvan2 vvan2 merged commit ae3853d into develop Oct 27, 2025
3 checks passed
@vvan2 vvan2 deleted the feat/#11-home-view branch October 27, 2025 05:38
@coderabbitai coderabbitai bot mentioned this pull request Nov 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature ✨ 기능 구현 주완🐹 주완 전용 라벨

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] 메인 홈 뷰 작업

2 participants