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,
|
top: 6,
|
||||||
right: 6,
|
right: 6,
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
icon: const Icon(
|
icon: Image.asset(
|
||||||
Icons.open_in_full,
|
'assets/images/open_in_full.png',
|
||||||
color: Colors.white,
|
width: 24,
|
||||||
size: 24,
|
height: 24
|
||||||
),
|
),
|
||||||
onPressed: _openFullScreen,
|
onPressed: _openFullScreen,
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
|
|||||||
@@ -46,7 +46,17 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
color: message.isUser
|
color: message.isUser
|
||||||
? CommonUtil.commonColor
|
? CommonUtil.commonColor
|
||||||
: Colors.white.withValues(alpha: 0.12),
|
: 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),
|
child: _buildAssistantContent(isThinking),
|
||||||
)
|
)
|
||||||
@@ -58,7 +68,17 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
color: message.isUser
|
color: message.isUser
|
||||||
? CommonUtil.commonColor
|
? CommonUtil.commonColor
|
||||||
: Colors.white.withValues(alpha: 0.12),
|
: 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
|
child: message.isUser
|
||||||
? _buildUserContent()
|
? _buildUserContent()
|
||||||
@@ -81,8 +101,7 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
_buildStatusRow(hasBottomMargin: true),
|
_buildStatusRow(hasBottomMargin: true),
|
||||||
Text(
|
Text(
|
||||||
message.text,
|
message.text,
|
||||||
style: TextStyle(
|
style: TextStyle(color: Colors.white, fontSize: 16),
|
||||||
color: Colors.white, fontSize: 16, fontWeight: FontWeight.bold),
|
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
@@ -239,7 +258,10 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: 6),
|
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),
|
const SizedBox(height: 6),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 24,
|
height: 24,
|
||||||
@@ -256,17 +278,17 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
const Icon(Icons.stop_circle_outlined,
|
const Icon(Icons.stop_circle_outlined,
|
||||||
size: 16, color: CommonUtil.commonColor),
|
size: 18, color: CommonUtil.commonColor),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
Intl.getCurrentLocale().startsWith('zh')
|
Intl.getCurrentLocale().startsWith('zh')
|
||||||
? '停止回答'
|
? '停止回答'
|
||||||
: 'Stop',
|
: 'Stop',
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
color: Colors.white, fontSize: 12)),
|
color: Colors.white, fontSize: 14)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
)
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
: Row(
|
: Row(
|
||||||
@@ -293,10 +315,14 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
? '已复制到剪贴板'
|
? '已复制到剪贴板'
|
||||||
: 'Copied to clipboard');
|
: 'Copied to clipboard');
|
||||||
},
|
},
|
||||||
child: const Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.only(left: 12),
|
padding: const EdgeInsets.only(left: 12),
|
||||||
child: Icon(Icons.content_copy,
|
child: Image.asset(
|
||||||
size: 16, color: Colors.white),
|
'assets/images/copy.png',
|
||||||
|
width: 20,
|
||||||
|
height: 20,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
InkWell(
|
InkWell(
|
||||||
@@ -308,13 +334,11 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.only(left: 12),
|
padding: const EdgeInsets.only(left: 12),
|
||||||
child: Icon(
|
child: _liked
|
||||||
Icons.thumb_up_off_alt,
|
? Image.asset('assets/images/liked2.png',
|
||||||
size: 16,
|
width: 20, height: 20)
|
||||||
color: _liked
|
: Image.asset('assets/images/liked1.png',
|
||||||
? CommonUtil.commonColor
|
width: 20, height: 20),
|
||||||
: Colors.white,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
InkWell(
|
InkWell(
|
||||||
@@ -326,13 +350,11 @@ class _ChatBubbleState extends State<ChatBubble> {
|
|||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.only(left: 12),
|
padding: const EdgeInsets.only(left: 12),
|
||||||
child: Icon(
|
child: _disliked
|
||||||
Icons.thumb_down_off_alt,
|
? Image.asset('assets/images/disliked2.png',
|
||||||
size: 16,
|
width: 20, height: 20)
|
||||||
color: _disliked
|
: Image.asset('assets/images/disliked1.png',
|
||||||
? CommonUtil.commonColor
|
width: 20, height: 20)
|
||||||
: Colors.white,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||