icons
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 46 KiB |
BIN
assets/images/copy.png
Normal file
|
After Width: | Height: | Size: 749 B |
BIN
assets/images/disliked1.png
Normal file
|
After Width: | Height: | Size: 1003 B |
BIN
assets/images/disliked2.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/liked1.png
Normal file
|
After Width: | Height: | Size: 964 B |
BIN
assets/images/liked2.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/open_in_full.png
Normal file
|
After Width: | Height: | Size: 434 B |
@@ -141,10 +141,10 @@ class _PartScreenState extends State<PartScreen> {
|
||||
top: 6,
|
||||
right: 6,
|
||||
child: IconButton(
|
||||
icon: const Icon(
|
||||
Icons.open_in_full,
|
||||
color: Colors.white,
|
||||
size: 24,
|
||||
icon: Image.asset(
|
||||
'assets/images/open_in_full.png',
|
||||
width: 24,
|
||||
height: 24
|
||||
),
|
||||
onPressed: _openFullScreen,
|
||||
padding: EdgeInsets.zero,
|
||||
|
||||
@@ -46,7 +46,17 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
color: message.isUser
|
||||
? CommonUtil.commonColor
|
||||
: Colors.white.withValues(alpha: 0.12),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
borderRadius: message.isUser
|
||||
? BorderRadius.only(
|
||||
topLeft: Radius.circular(12),
|
||||
bottomLeft: Radius.circular(12),
|
||||
bottomRight: Radius.circular(12),
|
||||
)
|
||||
: BorderRadius.only(
|
||||
topRight: Radius.circular(12),
|
||||
bottomLeft: Radius.circular(12),
|
||||
bottomRight: Radius.circular(12),
|
||||
),
|
||||
),
|
||||
child: _buildAssistantContent(isThinking),
|
||||
)
|
||||
@@ -58,7 +68,17 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
color: message.isUser
|
||||
? CommonUtil.commonColor
|
||||
: Colors.white.withValues(alpha: 0.12),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
borderRadius: message.isUser
|
||||
? BorderRadius.only(
|
||||
topLeft: Radius.circular(12),
|
||||
bottomLeft: Radius.circular(12),
|
||||
bottomRight: Radius.circular(12),
|
||||
)
|
||||
: BorderRadius.only(
|
||||
topRight: Radius.circular(12),
|
||||
bottomLeft: Radius.circular(12),
|
||||
bottomRight: Radius.circular(12),
|
||||
),
|
||||
),
|
||||
child: message.isUser
|
||||
? _buildUserContent()
|
||||
@@ -81,8 +101,7 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
_buildStatusRow(hasBottomMargin: true),
|
||||
Text(
|
||||
message.text,
|
||||
style: TextStyle(
|
||||
color: Colors.white, fontSize: 16, fontWeight: FontWeight.bold),
|
||||
style: TextStyle(color: Colors.white, fontSize: 16),
|
||||
)
|
||||
],
|
||||
],
|
||||
@@ -239,7 +258,10 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SizedBox(height: 6),
|
||||
const Divider(color: Colors.grey, height: 1),
|
||||
const Opacity(
|
||||
opacity: 0.2,
|
||||
child: Divider(color: Colors.grey, height: 1),
|
||||
),
|
||||
const SizedBox(height: 6),
|
||||
SizedBox(
|
||||
height: 24,
|
||||
@@ -256,17 +278,17 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const Icon(Icons.stop_circle_outlined,
|
||||
size: 16, color: CommonUtil.commonColor),
|
||||
size: 18, color: CommonUtil.commonColor),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
Intl.getCurrentLocale().startsWith('zh')
|
||||
? '停止回答'
|
||||
: 'Stop',
|
||||
style: const TextStyle(
|
||||
color: Colors.white, fontSize: 12)),
|
||||
color: Colors.white, fontSize: 14)),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
: Row(
|
||||
@@ -293,10 +315,14 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
? '已复制到剪贴板'
|
||||
: 'Copied to clipboard');
|
||||
},
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.only(left: 12),
|
||||
child: Icon(Icons.content_copy,
|
||||
size: 16, color: Colors.white),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 12),
|
||||
child: Image.asset(
|
||||
'assets/images/copy.png',
|
||||
width: 20,
|
||||
height: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
@@ -308,13 +334,11 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 12),
|
||||
child: Icon(
|
||||
Icons.thumb_up_off_alt,
|
||||
size: 16,
|
||||
color: _liked
|
||||
? CommonUtil.commonColor
|
||||
: Colors.white,
|
||||
),
|
||||
child: _liked
|
||||
? Image.asset('assets/images/liked2.png',
|
||||
width: 20, height: 20)
|
||||
: Image.asset('assets/images/liked1.png',
|
||||
width: 20, height: 20),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
@@ -326,13 +350,11 @@ class _ChatBubbleState extends State<ChatBubble> {
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 12),
|
||||
child: Icon(
|
||||
Icons.thumb_down_off_alt,
|
||||
size: 16,
|
||||
color: _disliked
|
||||
? CommonUtil.commonColor
|
||||
: Colors.white,
|
||||
),
|
||||
child: _disliked
|
||||
? Image.asset('assets/images/disliked2.png',
|
||||
width: 20, height: 20)
|
||||
: Image.asset('assets/images/disliked1.png',
|
||||
width: 20, height: 20)
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||