๐ :: (#34) Base Scaffold, Base Appbar ํผ๋ธ๋ฆฌ์ฑ#35
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR publishes global BaseScaffold and BaseAppbar widgets to standardize scaffold layout and app bar styling across the app.
- Introduces BaseScaffold abstract widget with customizable background, SafeArea handling, and optional bottom navigation.
- Introduces BaseAppbar widget wrapping Flutterโs AppBar with default styling, back navigation support, and action slots.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| lib/core/config/widget/base_scaffold.dart | Added BaseScaffold with common Scaffold properties, SafeArea wrapper, and abstract hooks. |
| lib/core/config/widget/base_appbar.dart | Added BaseAppbar implementing PreferredSizeWidget to provide a styled AppBar template. |
Comments suppressed due to low confidence (4)
lib/core/config/widget/base_appbar.dart:5
- Class name 'BaseAppbar' is inconsistent with Flutter's 'AppBar' naming. Consider renaming to 'BaseAppBar' for clarity.
class BaseAppbar extends StatelessWidget implements PreferredSizeWidget {
lib/core/config/widget/base_scaffold.dart:35
- [nitpick] The getter name 'setBottomSafeArea' reads like an action. Consider renaming to 'useBottomSafeArea' to indicate a boolean flag.
bool get setBottomSafeArea => true;
lib/core/config/widget/base_scaffold.dart:38
- [nitpick] The getter name 'setTopSafeArea' is ambiguous. Rename to 'useTopSafeArea' to match 'useSafeArea' and clarify intent.
bool get setTopSafeArea => true;
lib/core/config/widget/base_appbar.dart:5
- [nitpick] Add dartdoc comments to this public widget class and its constructor parameters to explain their purpose and usage.
class BaseAppbar extends StatelessWidget implements PreferredSizeWidget {
| leading: IconButton( | ||
| onPressed: () { | ||
| Navigator.of(context).pop(); | ||
| }, | ||
| icon: JusicoolIcon.backArrow( | ||
| width: 24.w, | ||
| height: 24.h, | ||
| color: JusicoolColor.black, | ||
| ), | ||
| ), |
There was a problem hiding this comment.
The 'backButton' flag isn't used to conditionally render the back icon. Wrap this IconButton in an if (backButton) so it only shows when requested.
| leading: IconButton( | |
| onPressed: () { | |
| Navigator.of(context).pop(); | |
| }, | |
| icon: JusicoolIcon.backArrow( | |
| width: 24.w, | |
| height: 24.h, | |
| color: JusicoolColor.black, | |
| ), | |
| ), | |
| leading: backButton | |
| ? IconButton( | |
| onPressed: () { | |
| Navigator.of(context).pop(); | |
| }, | |
| icon: JusicoolIcon.backArrow( | |
| width: 24.w, | |
| height: 24.h, | |
| color: JusicoolColor.black, | |
| ), | |
| ) | |
| : null, |
| color: JusicoolColor.black, | ||
| ), | ||
| ), | ||
| actionsPadding: EdgeInsets.only(right: 24), |
There was a problem hiding this comment.
[nitpick] Use responsive padding with ScreenUtil (e.g., EdgeInsets.only(right: 24.w)) to maintain consistency across screen sizes.
| actionsPadding: EdgeInsets.only(right: 24), | |
| actionsPadding: EdgeInsets.only(right: 24.w), |
|
์๊ณ ํ์ จ์ต๋๋ค |
DAMNyul
left a comment
There was a problem hiding this comment.
์ ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค! ์๊ณ ํ์ จ์ต๋๋ค!
๐ก ๊ฐ์
๐ ์์ ๋ด์ฉ
๐ ๋ณ๊ฒฝ์ฌํญ
๐โโ๏ธ ์ง๋ฌธ์ฌํญ
๐ด ์ฌ์ฉ๋ฐฉ๋ฒ
๐ธ ๊ธฐํ