💄 Optimize design

This commit is contained in:
2024-05-23 20:00:26 +08:00
parent a291e8af66
commit 05f88fe3f3
13 changed files with 196 additions and 33 deletions

View File

@ -4,9 +4,9 @@ import 'package:get/utils.dart';
abstract class AppNavigation {
static List<AppNavigationDestination> destinations = [
AppNavigationDestination(
icon: const Icon(Icons.home),
label: 'home'.tr,
page: 'home',
icon: const Icon(Icons.public),
label: 'social'.tr,
page: 'social',
),
AppNavigationDestination(
icon: const Icon(Icons.account_circle),
@ -21,5 +21,6 @@ class AppNavigationDestination {
final String label;
final String page;
AppNavigationDestination({required this.icon, required this.label, required this.page});
AppNavigationDestination(
{required this.icon, required this.label, required this.page});
}

View File

@ -15,13 +15,15 @@ class _AppNavigationRailState extends State<AppNavigationRail> {
@override
Widget build(BuildContext context) {
return NavigationRail(
destinations: AppNavigation.destinations.map(
(e) => NavigationRailDestination(
icon: e.icon,
label: Text(e.label),
),
).toList(),
labelType: NavigationRailLabelType.selected,
destinations: AppNavigation.destinations
.map(
(e) => NavigationRailDestination(
icon: e.icon,
label: Text(e.label),
),
)
.toList(),
labelType: NavigationRailLabelType.all,
selectedIndex: _selectedIndex,
onDestinationSelected: (idx) {
setState(() => _selectedIndex = idx);

View File

@ -2,6 +2,7 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';
import 'package:solian/exts.dart';
import 'package:solian/models/post.dart';
@ -68,7 +69,7 @@ class _PostActionState extends State<PostAction> {
children: [
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
leading: const Icon(Icons.reply),
leading: const FaIcon(FontAwesomeIcons.reply, size: 20),
title: Text('reply'.tr),
onTap: () async {
final value = await AppRouter.instance.pushNamed(
@ -82,7 +83,7 @@ class _PostActionState extends State<PostAction> {
),
ListTile(
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
leading: const Icon(Icons.redo),
leading: const FaIcon(FontAwesomeIcons.retweet, size: 20),
title: Text('repost'.tr),
onTap: () async {
final value = await AppRouter.instance.pushNamed(

View File

@ -1,6 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get_utils/get_utils.dart';
import 'package:solian/models/post.dart';
import 'package:solian/widgets/account/account_avatar.dart';
@ -38,9 +39,9 @@ class _PostItemState extends State<PostItem> {
children: [
Row(
children: [
Icon(
Icons.reply,
size: 18,
FaIcon(
FontAwesomeIcons.reply,
size: 16,
color: Theme.of(context).colorScheme.onSurface.withOpacity(0.75),
),
Text(
@ -70,9 +71,9 @@ class _PostItemState extends State<PostItem> {
children: [
Row(
children: [
Icon(
Icons.redo,
size: 18,
FaIcon(
FontAwesomeIcons.retweet,
size: 16,
color: Theme.of(context).colorScheme.onSurface.withOpacity(0.75),
),
Text(
@ -150,14 +151,16 @@ class _PostItemState extends State<PostItem> {
.paddingOnly(left: 4),
],
),
if (widget.item.replyTo != null) buildReply(context),
if (widget.item.repostTo != null) buildRepost(context),
Markdown(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
data: item.content,
padding: const EdgeInsets.all(0),
).paddingOnly(left: 12, right: 8),
if (widget.item.replyTo != null)
buildReply(context).paddingOnly(top: 4),
if (widget.item.repostTo != null)
buildRepost(context).paddingOnly(top: 4),
],
),
)