Skip to content

Conversation

@iloveuhyeon
Copy link
Collaborator

๐Ÿ’ก ๊ฐœ์š”

  • Base Scaffold๋ฅผ ํผ๋ธ”๋ฆฌ์‹ฑ ํ–ˆ์Šต๋‹ˆ๋‹ค
  • Base Appbar๋ฅผ ํผ๋ธ”๋ฆฌ์‹ฑ ํ–ˆ์Šต๋‹ˆ๋‹ค

๐Ÿ“ƒ ์ž‘์—…๋‚ด์šฉ

  • ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Base Scaffold๋ฅผ ํผ๋ธ”๋ฆฌ์‹ฑํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’ํ˜”์Šต๋‹ˆ๋‹ค.
  • ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Base Appbar๋ฅผ ํผ๋ธ”๋ฆฌ์‹ฑํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’ํ˜”์Šต๋‹ˆ๋‹ค.

๐Ÿ”€ ๋ณ€๊ฒฝ์‚ฌํ•ญ

๐Ÿ™‹โ€โ™‚๏ธ ์งˆ๋ฌธ์‚ฌํ•ญ

๐Ÿด ์‚ฌ์šฉ๋ฐฉ๋ฒ•

import '../../../core/config/widget/base_appbar.dart';
import '../../../core/config/widget/base_scaffold.dart';

class CandlestickChartScaffold extends BaseScaffold {
  const CandlestickChartScaffold({
    super.key,
    required this.candlestickChartWidget,
    required this.stocksInfoTabBar,
    required this.stocksInfoTabBarView,
  });

  final Widget candlestickChartWidget;
  final Widget stocksInfoTabBar;
  final Widget stocksInfoTabBarView;

  @override
  Widget buildBody(BuildContext context, WidgetRef ref) {
    return SingleChildScrollView(
      child: Padding(
        padding: EdgeInsets.symmetric(vertical: 16.h),
        child: Column(
          spacing: 24,
          children: [
            candlestickChartWidget,
            stocksInfoTabBar,
            stocksInfoTabBarView,
          ],
        ),
      ),
    );
  }

  @override
  PreferredSizeWidget? buildAppBar(BuildContext context, WidgetRef ref) {
    return BaseAppbar(
      title: '๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ',
      backButton: true,
      actionWidgets: [
        IconButton(
          onPressed: () {},
          icon: JusicoolIcon.setting(
            width: 24.w,
            height: 24.h,
            color: JusicoolColor.black,
          ),
        ),
      ],
    );
  }
}

๐ŸŽธ ๊ธฐํƒ€

@iloveuhyeon iloveuhyeon self-assigned this Jul 10, 2025
@iloveuhyeon iloveuhyeon added the ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ ํผ๋ธ”๋ฆฌ์‹ฑ์„ ์ง„ํ–‰ํ• ๋•Œ label Jul 10, 2025
@iloveuhyeon iloveuhyeon linked an issue Jul 10, 2025 that may be closed by this pull request
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 {

Comment on lines 33 to 42
leading: IconButton(
onPressed: () {
Navigator.of(context).pop();
},
icon: JusicoolIcon.backArrow(
width: 24.w,
height: 24.h,
color: JusicoolColor.black,
),
),
Copy link

Copilot AI Jul 10, 2025

Choose a reason for hiding this comment

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

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.

Suggested change
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,

Copilot uses AI. Check for mistakes.
color: JusicoolColor.black,
),
),
actionsPadding: EdgeInsets.only(right: 24),
Copy link

Copilot AI Jul 10, 2025

Choose a reason for hiding this comment

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

[nitpick] Use responsive padding with ScreenUtil (e.g., EdgeInsets.only(right: 24.w)) to maintain consistency across screen sizes.

Suggested change
actionsPadding: EdgeInsets.only(right: 24),
actionsPadding: EdgeInsets.only(right: 24.w),

Copilot uses AI. Check for mistakes.
@aiden30015
Copy link
Contributor

์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค

Copy link
Collaborator

@DAMNyul DAMNyul left a comment

Choose a reason for hiding this comment

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

์ ์šฉํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค!

Copy link
Contributor

@bluemoon983 bluemoon983 left a comment

Choose a reason for hiding this comment

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

ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค!

@iloveuhyeon iloveuhyeon merged commit fea153a into develop Jul 10, 2025
1 check passed
@iloveuhyeon iloveuhyeon deleted the feature/#34-publishing-base-scaffold-and-base-appbar branch July 10, 2025 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ ํผ๋ธ”๋ฆฌ์‹ฑ์„ ์ง„ํ–‰ํ• ๋•Œ

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Base Scaffold, Base Appbar ํผ๋ธ”๋ฆฌ์‹ฑ

5 participants