From 60a6e4e7ad46ef7bce1e553c01dced3cb3f990ab Mon Sep 17 00:00:00 2001 From: juseong ahn <ajs8780@ajou.ac.kr> Date: Fri, 21 Jun 2024 01:44:42 +0900 Subject: [PATCH] Delete main.dart --- main.dart | 216 ------------------------------------------------------ 1 file changed, 216 deletions(-) delete mode 100644 main.dart diff --git a/main.dart b/main.dart deleted file mode 100644 index d5d4c27e3f..0000000000 --- a/main.dart +++ /dev/null @@ -1,216 +0,0 @@ -import 'package:english_words/english_words.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; -import 'package:provider/provider.dart'; - -void main() { - runApp(MyApp()); -} - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - - @override - Widget build(BuildContext context) { - return ChangeNotifierProvider( - create: (context) => MyAppState(), - child: MaterialApp( - title: 'Namer App', - theme: ThemeData( - useMaterial3: true, - colorScheme: ColorScheme.fromSeed(seedColor: Colors.yellow), - ), - home: MyHomePage(), - ), - ); - } -} - -class MyAppState extends ChangeNotifier { - var current = WordPair.random(); - - void getNext() { - current = WordPair.random(); - notifyListeners(); - } - - // ↓ Add the code below. - var favorites = <WordPair>[]; - - void toggleFavorite() { - if (favorites.contains(current)) { - favorites.remove(current); - } else { - favorites.add(current); - } - notifyListeners(); - } -} - -class MyHomePage extends StatefulWidget { - @override - State<MyHomePage> createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State<MyHomePage> { - - var selectedIndex = 0; // ← Add this property. - - @override - Widget build(BuildContext context) { - Widget page; - switch (selectedIndex) { - case 0: - page = GeneratorPage(); - break; - case 1: - page = FavoritesPage(); - break; - default: - throw UnimplementedError('no widget for $selectedIndex'); - } - return LayoutBuilder( - builder: (context, constraints) { - return Scaffold( - body: Row( - children: [ - SafeArea( - child: NavigationRail( - extended: constraints.maxWidth >= 600, // ← Here. - destinations: [ - NavigationRailDestination( - icon: Icon(Icons.home), - label: Text('Home'), - ), - NavigationRailDestination( - icon: Icon(Icons.favorite), - label: Text('Favorites'), - ), - ], - selectedIndex: selectedIndex, // ← Change to this. - onDestinationSelected: (value) { - - // ↓ Replace print with this. - setState(() { - selectedIndex = value; - }); - - }, - ), - ), - Expanded( - child: Container( - color: Theme.of(context).colorScheme.primaryContainer, - child: page, //GeneratorPage(), - ), - ), - ], - ), - ); - } - ); - } -} - -class GeneratorPage extends StatelessWidget { - @override - Widget build(BuildContext context) { - var appState = context.watch<MyAppState>(); - var pair = appState.current; - - IconData icon; - if (appState.favorites.contains(pair)) { - icon = Icons.favorite; - } else { - icon = Icons.favorite_border; - } - - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - BigCard(pair: pair), - SizedBox(height: 10), - Row( - mainAxisSize: MainAxisSize.min, - children: [ - ElevatedButton.icon( - onPressed: () { - appState.toggleFavorite(); - }, - icon: Icon(icon), - label: Text('Like'), - ), - SizedBox(width: 10), - ElevatedButton( - onPressed: () { - appState.getNext(); - }, - child: Text('Next'), - ), - ], - ), - ], - ), - ); - } -} - -class BigCard extends StatelessWidget { - const BigCard({ - super.key, - required this.pair, - }); - - final WordPair pair; - - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - // ↓ Add this. - final style = theme.textTheme.displayMedium!.copyWith( - color: theme.colorScheme.onPrimary, - ); - - return Card( - color: theme.colorScheme.primary, - child: Padding( - padding: const EdgeInsets.all(20), - // ↓ Change this line. - child: Text( - pair.asLowerCase, - style: style, - semanticsLabel: "${pair.first} ${pair.second}", - ), - ), - ); - } -} - -class FavoritesPage extends StatelessWidget { - @override - Widget build(BuildContext context) { - var appState = context.watch<MyAppState>(); - - if (appState.favorites.isEmpty) { - return Center( - child: Text('(null)'), - ); - } - - return ListView( - children: [ - Padding( - padding: const EdgeInsets.all(20), - child: Text('You have ' - '${appState.favorites.length} favorites:'), - ), - for (var pair in appState.favorites) - ListTile( - leading: Icon(Icons.favorite), - title: Text(pair.asLowerCase), - ), - ], - ); - } -} \ No newline at end of file -- GitLab