@unif/react-native-chat 4.6.2 → 4.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,7 +10,7 @@ React Native 聊天 UI 组件,提供消息列表、输入、附件和交互反
10
10
  | ------------ | ------------------ |
11
11
  | React Native | `>=0.86.0` |
12
12
  | React | `>=19.2.3 <20.0.0` |
13
- | Unif Design | `^1.7.0` |
13
+ | Unif Design | `^1.18.0` |
14
14
 
15
15
  ```sh
16
16
  yarn add @unif/react-native-chat
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { ActivityIndicator, Pressable, View } from 'react-native';
4
- import { useColors, useThemedStyles } from '@unif/react-native-design';
4
+ import { useColors, useMotionActive, useThemedStyles } from '@unif/react-native-design';
5
5
  import { COMPOSER_ACTION_ICON_SIZE, COMPOSER_PRIMARY_ICON_SIZE, COMPOSER_CANCEL_ICON_SIZE } from "./constants.js";
6
6
  import { createStyles } from "./styles.js";
7
7
  import { useMousePress } from "./useMousePress.js";
@@ -16,6 +16,7 @@ export function ComposerIconAction({
16
16
  visual = 'icon'
17
17
  }) {
18
18
  const colors = useColors();
19
+ const motionActive = useMotionActive();
19
20
  const styles = useThemedStyles(createStyles);
20
21
  const unavailable = disabled || busy;
21
22
  const {
@@ -44,7 +45,9 @@ export function ComposerIconAction({
44
45
  style: [styles.actionVisual, primary && styles.primary, visual === 'cancel' && styles.cancel, (pressed || mousePressed) && (primary ? styles.primaryPressed : styles.actionPressed), disabled && (primary ? styles.primaryDisabled : styles.actionDisabled)],
45
46
  children: busy ? /*#__PURE__*/_jsx(ActivityIndicator, {
46
47
  size: "small",
47
- color: color
48
+ color: color,
49
+ animating: motionActive,
50
+ hidesWhenStopped: false
48
51
  }) : /*#__PURE__*/_jsx(Glyph, {
49
52
  size: primary ? COMPOSER_PRIMARY_ICON_SIZE : visual === 'cancel' ? COMPOSER_CANCEL_ICON_SIZE : COMPOSER_ACTION_ICON_SIZE,
50
53
  color: color,
@@ -1 +1 @@
1
- {"version":3,"names":["ActivityIndicator","Pressable","View","useColors","useThemedStyles","COMPOSER_ACTION_ICON_SIZE","COMPOSER_PRIMARY_ICON_SIZE","COMPOSER_CANCEL_ICON_SIZE","createStyles","useMousePress","jsx","_jsx","ComposerIconAction","icon","label","onPress","disabled","busy","expanded","visual","colors","styles","unavailable","mousePressed","mouseHandlers","primary","color","foregroundSubtle","onPrimary","foregroundMuted","foreground","Glyph","accessibilityRole","accessibilityLabel","accessibilityState","undefined","style","action","children","pressed","pointerEvents","actionVisual","cancel","primaryPressed","actionPressed","primaryDisabled","actionDisabled","size","transform","rotate"],"sourceRoot":"../../../../src","sources":["components/Composer/ComposerIconAction.tsx"],"mappings":";;AAAA,SAASA,iBAAiB,EAAEC,SAAS,EAAEC,IAAI,QAAQ,cAAc;AACjE,SAASC,SAAS,EAAEC,eAAe,QAAQ,2BAA2B;AACtE,SACEC,yBAAyB,EACzBC,0BAA0B,EAC1BC,yBAAyB,QACpB,gBAAa;AACpB,SAASC,YAAY,QAAQ,aAAU;AACvC,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGhD,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,IAAI;EACJC,KAAK;EACLC,OAAO;EACPC,QAAQ,GAAG,KAAK;EAChBC,IAAI,GAAG,KAAK;EACZC,QAAQ;EACRC,MAAM,GAAG;AACc,CAAC,EAAE;EAC1B,MAAMC,MAAM,GAAGjB,SAAS,CAAC,CAAC;EAC1B,MAAMkB,MAAM,GAAGjB,eAAe,CAACI,YAAY,CAAC;EAC5C,MAAMc,WAAW,GAAGN,QAAQ,IAAIC,IAAI;EACpC,MAAM;IAAEM,YAAY;IAAE,GAAGC;EAAc,CAAC,GAAGf,aAAa,CAACa,WAAW,CAAC;EACrE,MAAMG,OAAO,GAAGN,MAAM,KAAK,SAAS;EACpC,MAAMO,KAAK,GAAGD,OAAO,GACjBT,QAAQ,GACNI,MAAM,CAACO,gBAAgB,GACvBP,MAAM,CAACQ,SAAS,GAClBT,MAAM,KAAK,QAAQ,GACjBC,MAAM,CAACS,eAAe,GACtBT,MAAM,CAACU,UAAU;EACvB,MAAMC,KAAK,GAAGlB,IAAI;EAClB,oBACEF,IAAA,CAACV,SAAS;IACR+B,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEnB,KAAM;IAC1BoB,kBAAkB,EAAE;MAAElB,QAAQ,EAAEM,WAAW;MAAEL,IAAI;MAAEC;IAAS,CAAE;IAC9DF,QAAQ,EAAEM,WAAY;IACtBP,OAAO,EAAEO,WAAW,GAAGa,SAAS,GAAGpB,OAAQ;IAAA,GACvCS,aAAa;IACjBY,KAAK,EAAEf,MAAM,CAACgB,MAAO;IAAAC,QAAA,EAEpBA,CAAC;MAAEC;IAAQ,CAAC,kBACX5B,IAAA,CAACT,IAAI;MACHsC,aAAa,EAAC,MAAM;MACpBJ,KAAK,EAAE,CACLf,MAAM,CAACoB,YAAY,EACnBhB,OAAO,IAAIJ,MAAM,CAACI,OAAO,EACzBN,MAAM,KAAK,QAAQ,IAAIE,MAAM,CAACqB,MAAM,EACpC,CAACH,OAAO,IAAIhB,YAAY,MACrBE,OAAO,GAAGJ,MAAM,CAACsB,cAAc,GAAGtB,MAAM,CAACuB,aAAa,CAAC,EAC1D5B,QAAQ,KACLS,OAAO,GAAGJ,MAAM,CAACwB,eAAe,GAAGxB,MAAM,CAACyB,cAAc,CAAC,CAC5D;MAAAR,QAAA,EAEDrB,IAAI,gBACHN,IAAA,CAACX,iBAAiB;QAAC+C,IAAI,EAAC,OAAO;QAACrB,KAAK,EAAEA;MAAM,CAAE,CAAC,gBAEhDf,IAAA,CAACoB,KAAK;QACJgB,IAAI,EACFtB,OAAO,GACHnB,0BAA0B,GAC1Ba,MAAM,KAAK,QAAQ,GACjBZ,yBAAyB,GACzBF,yBACP;QACDqB,KAAK,EAAEA,KAAM;QACbU,KAAK,EACHlB,QAAQ,GAAG;UAAE8B,SAAS,EAAE,CAAC;YAAEC,MAAM,EAAE;UAAQ,CAAC;QAAE,CAAC,GAAGd;MACnD,CACF;IACF,CACG;EACP,CACQ,CAAC;AAEhB","ignoreList":[]}
1
+ {"version":3,"names":["ActivityIndicator","Pressable","View","useColors","useMotionActive","useThemedStyles","COMPOSER_ACTION_ICON_SIZE","COMPOSER_PRIMARY_ICON_SIZE","COMPOSER_CANCEL_ICON_SIZE","createStyles","useMousePress","jsx","_jsx","ComposerIconAction","icon","label","onPress","disabled","busy","expanded","visual","colors","motionActive","styles","unavailable","mousePressed","mouseHandlers","primary","color","foregroundSubtle","onPrimary","foregroundMuted","foreground","Glyph","accessibilityRole","accessibilityLabel","accessibilityState","undefined","style","action","children","pressed","pointerEvents","actionVisual","cancel","primaryPressed","actionPressed","primaryDisabled","actionDisabled","size","animating","hidesWhenStopped","transform","rotate"],"sourceRoot":"../../../../src","sources":["components/Composer/ComposerIconAction.tsx"],"mappings":";;AAAA,SAASA,iBAAiB,EAAEC,SAAS,EAAEC,IAAI,QAAQ,cAAc;AACjE,SACEC,SAAS,EACTC,eAAe,EACfC,eAAe,QACV,2BAA2B;AAClC,SACEC,yBAAyB,EACzBC,0BAA0B,EAC1BC,yBAAyB,QACpB,gBAAa;AACpB,SAASC,YAAY,QAAQ,aAAU;AACvC,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGhD,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,IAAI;EACJC,KAAK;EACLC,OAAO;EACPC,QAAQ,GAAG,KAAK;EAChBC,IAAI,GAAG,KAAK;EACZC,QAAQ;EACRC,MAAM,GAAG;AACc,CAAC,EAAE;EAC1B,MAAMC,MAAM,GAAGlB,SAAS,CAAC,CAAC;EAC1B,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;EACtC,MAAMmB,MAAM,GAAGlB,eAAe,CAACI,YAAY,CAAC;EAC5C,MAAMe,WAAW,GAAGP,QAAQ,IAAIC,IAAI;EACpC,MAAM;IAAEO,YAAY;IAAE,GAAGC;EAAc,CAAC,GAAGhB,aAAa,CAACc,WAAW,CAAC;EACrE,MAAMG,OAAO,GAAGP,MAAM,KAAK,SAAS;EACpC,MAAMQ,KAAK,GAAGD,OAAO,GACjBV,QAAQ,GACNI,MAAM,CAACQ,gBAAgB,GACvBR,MAAM,CAACS,SAAS,GAClBV,MAAM,KAAK,QAAQ,GACjBC,MAAM,CAACU,eAAe,GACtBV,MAAM,CAACW,UAAU;EACvB,MAAMC,KAAK,GAAGnB,IAAI;EAClB,oBACEF,IAAA,CAACX,SAAS;IACRiC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEpB,KAAM;IAC1BqB,kBAAkB,EAAE;MAAEnB,QAAQ,EAAEO,WAAW;MAAEN,IAAI;MAAEC;IAAS,CAAE;IAC9DF,QAAQ,EAAEO,WAAY;IACtBR,OAAO,EAAEQ,WAAW,GAAGa,SAAS,GAAGrB,OAAQ;IAAA,GACvCU,aAAa;IACjBY,KAAK,EAAEf,MAAM,CAACgB,MAAO;IAAAC,QAAA,EAEpBA,CAAC;MAAEC;IAAQ,CAAC,kBACX7B,IAAA,CAACV,IAAI;MACHwC,aAAa,EAAC,MAAM;MACpBJ,KAAK,EAAE,CACLf,MAAM,CAACoB,YAAY,EACnBhB,OAAO,IAAIJ,MAAM,CAACI,OAAO,EACzBP,MAAM,KAAK,QAAQ,IAAIG,MAAM,CAACqB,MAAM,EACpC,CAACH,OAAO,IAAIhB,YAAY,MACrBE,OAAO,GAAGJ,MAAM,CAACsB,cAAc,GAAGtB,MAAM,CAACuB,aAAa,CAAC,EAC1D7B,QAAQ,KACLU,OAAO,GAAGJ,MAAM,CAACwB,eAAe,GAAGxB,MAAM,CAACyB,cAAc,CAAC,CAC5D;MAAAR,QAAA,EAEDtB,IAAI,gBACHN,IAAA,CAACZ,iBAAiB;QAChBiD,IAAI,EAAC,OAAO;QACZrB,KAAK,EAAEA,KAAM;QACbsB,SAAS,EAAE5B,YAAa;QACxB6B,gBAAgB,EAAE;MAAM,CACzB,CAAC,gBAEFvC,IAAA,CAACqB,KAAK;QACJgB,IAAI,EACFtB,OAAO,GACHpB,0BAA0B,GAC1Ba,MAAM,KAAK,QAAQ,GACjBZ,yBAAyB,GACzBF,yBACP;QACDsB,KAAK,EAAEA,KAAM;QACbU,KAAK,EACHnB,QAAQ,GAAG;UAAEiC,SAAS,EAAE,CAAC;YAAEC,MAAM,EAAE;UAAQ,CAAC;QAAE,CAAC,GAAGhB;MACnD,CACF;IACF,CACG;EACP,CACQ,CAAC;AAEhB","ignoreList":[]}
@@ -2,15 +2,17 @@
2
2
 
3
3
  import { useEffect, useState } from 'react';
4
4
  import { Animated, Easing, Platform, View } from 'react-native';
5
- import { usePrefersReducedMotion, useThemedStyles } from '@unif/react-native-design';
5
+ import { usePrefersReducedMotion, useMotionActive, useThemedStyles } from '@unif/react-native-design';
6
6
  import { COMPOSER_VOICE_WAVE_PATTERN, COMPOSER_VOICE_WAVE_STAGGER_MS } from "./constants.js";
7
7
  import { createStyles } from "./styles.js";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export function ComposerVoiceWave() {
10
10
  const styles = useThemedStyles(createStyles);
11
11
  const reducedMotion = usePrefersReducedMotion();
12
+ const active = useMotionActive();
12
13
  const [values] = useState(() => COMPOSER_VOICE_WAVE_PATTERN.map(group => new Animated.Value(group.from / Math.max(group.from, group.to))));
13
14
  useEffect(() => {
15
+ if (!active) return;
14
16
  const animations = COMPOSER_VOICE_WAVE_PATTERN.map((group, index) => {
15
17
  const value = values[index];
16
18
  const maximum = Math.max(group.from, group.to);
@@ -25,7 +27,7 @@ export function ComposerVoiceWave() {
25
27
  if (!reducedMotion) animations.forEach(animation => animation.start());
26
28
  return () => animations.forEach(animation => animation.stop());
27
29
  // 波形规格固定,输入文字更新不重启装饰动画。
28
- }, [reducedMotion, values]);
30
+ }, [active, reducedMotion, values]);
29
31
  return /*#__PURE__*/_jsx(View, {
30
32
  style: styles.wave,
31
33
  pointerEvents: "none",
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","Animated","Easing","Platform","View","usePrefersReducedMotion","useThemedStyles","COMPOSER_VOICE_WAVE_PATTERN","COMPOSER_VOICE_WAVE_STAGGER_MS","createStyles","jsx","_jsx","ComposerVoiceWave","styles","reducedMotion","values","map","group","Value","from","Math","max","to","animations","index","value","maximum","setValue","sequence","delay","loop","height","timing","toValue","duration","easing","inOut","ease","useNativeDriver","OS","forEach","animation","start","stop","style","wave","pointerEvents","accessibilityElementsHidden","importantForAccessibility","children","waveBar","transform","scaleY"],"sourceRoot":"../../../../src","sources":["components/Composer/ComposerVoiceWave.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","Animated","Easing","Platform","View","usePrefersReducedMotion","useMotionActive","useThemedStyles","COMPOSER_VOICE_WAVE_PATTERN","COMPOSER_VOICE_WAVE_STAGGER_MS","createStyles","jsx","_jsx","ComposerVoiceWave","styles","reducedMotion","active","values","map","group","Value","from","Math","max","to","animations","index","value","maximum","setValue","sequence","delay","loop","height","timing","toValue","duration","easing","inOut","ease","useNativeDriver","OS","forEach","animation","start","stop","style","wave","pointerEvents","accessibilityElementsHidden","importantForAccessibility","children","waveBar","transform","scaleY"],"sourceRoot":"../../../../src","sources":["components/Composer/ComposerVoiceWave.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,20 @@ export function MarkdownContent({
19
19
  const styles = useThemedStyles(outgoing ? createOutgoingStyles : createStyles);
20
20
  const markdown = useMemo(() => {
21
21
  const instance = new Renderer();
22
+ const renderList = instance.list.bind(instance);
23
+ instance.list = (ordered, items, listStyle, textStyle, startIndex = 1) => {
24
+ if (!ordered) return renderList(ordered, items, listStyle, textStyle, startIndex);
25
+ // 每行独立保留编号宽度,追加两位数编号不再挤压已有正文。
26
+ return items.map((item, index) => {
27
+ const content = /*#__PURE__*/isValidElement(item) ? /*#__PURE__*/cloneElement(item, {
28
+ key: index
29
+ }) : item;
30
+ const row = renderList(true, [content], listStyle, textStyle, startIndex + index);
31
+ return /*#__PURE__*/isValidElement(row) ? /*#__PURE__*/cloneElement(row, {
32
+ key: index
33
+ }) : row;
34
+ });
35
+ };
22
36
  const renderCode = instance.code.bind(instance);
23
37
  instance.code = (value, language, containerStyle, textStyle) => renderCode(value, language, containerStyle, {
24
38
  ...textStyle,
@@ -1 +1 @@
1
- {"version":3,"names":["Children","cloneElement","Fragment","isValidElement","useMemo","Pressable","Text","View","Renderer","useMarkdown","useTheme","useThemedStyles","createStyles","createOutgoingStyles","MarkdownImage","jsx","_jsx","MarkdownContent","text","onLinkPress","outgoing","style","scheme","styles","markdown","instance","renderCode","code","bind","value","language","containerStyle","textStyle","codeText","renderTable","table","args","children","getKey","renderImage","image","uri","alt","imageStyle","title","endsWith","undefined","label","link","href","linkStyle","selectable","accessibilityRole","accessibilityLabel","onPress","event","stopPropagation","linkImage","content","renderer","nodes","colorScheme","toArray","length"],"sourceRoot":"../../../../../src","sources":["components/Message/MarkdownContent/MarkdownContent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Children","cloneElement","Fragment","isValidElement","useMemo","Pressable","Text","View","Renderer","useMarkdown","useTheme","useThemedStyles","createStyles","createOutgoingStyles","MarkdownImage","jsx","_jsx","MarkdownContent","text","onLinkPress","outgoing","style","scheme","styles","markdown","instance","renderList","list","bind","ordered","items","listStyle","textStyle","startIndex","map","item","index","content","key","row","renderCode","code","value","language","containerStyle","codeText","renderTable","table","args","children","getKey","renderImage","image","uri","alt","imageStyle","title","endsWith","undefined","label","link","href","linkStyle","selectable","accessibilityRole","accessibilityLabel","onPress","event","stopPropagation","linkImage","renderer","nodes","colorScheme","toArray","length"],"sourceRoot":"../../../../../src","sources":["components/Message/MarkdownContent/MarkdownContent.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useEffect, useState } from 'react';
4
4
  import { Animated, Easing, Platform, Text, View } from 'react-native';
5
- import { usePrefersReducedMotion, useThemedStyles } from '@unif/react-native-design';
5
+ import { usePrefersReducedMotion, useMotionActive, useThemedStyles } from '@unif/react-native-design';
6
6
  import { MESSAGE_WAITING_DOT_DELAYS, MESSAGE_WAITING_DOT_DURATION, MESSAGE_WAITING_DOT_MIN_OPACITY } from "./constants.js";
7
7
  import { createStyles } from "./styles.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -11,8 +11,10 @@ export function MessageWaiting({
11
11
  }) {
12
12
  const styles = useThemedStyles(createStyles);
13
13
  const reducedMotion = usePrefersReducedMotion();
14
+ const active = useMotionActive();
14
15
  const [values] = useState(() => MESSAGE_WAITING_DOT_DELAYS.map(() => new Animated.Value(1)));
15
16
  useEffect(() => {
17
+ if (!active) return;
16
18
  const animations = MESSAGE_WAITING_DOT_DELAYS.map((delay, index) => {
17
19
  const value = values[index];
18
20
  value.setValue(reducedMotion ? 1 : MESSAGE_WAITING_DOT_MIN_OPACITY);
@@ -25,7 +27,7 @@ export function MessageWaiting({
25
27
  });
26
28
  if (!reducedMotion) animations.forEach(animation => animation.start());
27
29
  return () => animations.forEach(animation => animation.stop());
28
- }, [reducedMotion, values]);
30
+ }, [active, reducedMotion, values]);
29
31
  return /*#__PURE__*/_jsxs(View, {
30
32
  style: styles.waitingRow,
31
33
  accessible: true,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","Animated","Easing","Platform","Text","View","usePrefersReducedMotion","useThemedStyles","MESSAGE_WAITING_DOT_DELAYS","MESSAGE_WAITING_DOT_DURATION","MESSAGE_WAITING_DOT_MIN_OPACITY","createStyles","jsx","_jsx","jsxs","_jsxs","MessageWaiting","label","styles","reducedMotion","values","map","Value","animations","delay","index","value","setValue","sequence","loop","toValue","timing","duration","easing","inOut","ease","useNativeDriver","OS","forEach","animation","start","stop","style","waitingRow","accessible","accessibilityLabel","accessibilityState","busy","children","waitingDots","pointerEvents","accessibilityElementsHidden","importantForAccessibility","opacity","testID","waitingDot","waitingLabel"],"sourceRoot":"../../../../src","sources":["components/Message/MessageWaiting.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","Animated","Easing","Platform","Text","View","usePrefersReducedMotion","useMotionActive","useThemedStyles","MESSAGE_WAITING_DOT_DELAYS","MESSAGE_WAITING_DOT_DURATION","MESSAGE_WAITING_DOT_MIN_OPACITY","createStyles","jsx","_jsx","jsxs","_jsxs","MessageWaiting","label","styles","reducedMotion","active","values","map","Value","animations","delay","index","value","setValue","sequence","loop","toValue","timing","duration","easing","inOut","ease","useNativeDriver","OS","forEach","animation","start","stop","style","waitingRow","accessible","accessibilityLabel","accessibilityState","busy","children","waitingDots","pointerEvents","accessibilityElementsHidden","importantForAccessibility","opacity","testID","waitingDot","waitingLabel"],"sourceRoot":"../../../../src","sources":["components/Message/MessageWaiting.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerIconAction.d.ts","sourceRoot":"","sources":["../../../../../src/components/Composer/ComposerIconAction.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,IAAY,EACZ,QAAQ,EACR,MAAe,GAChB,EAAE,uBAAuB,+BA0DzB"}
1
+ {"version":3,"file":"ComposerIconAction.d.ts","sourceRoot":"","sources":["../../../../../src/components/Composer/ComposerIconAction.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,IAAY,EACZ,QAAQ,EACR,MAAe,GAChB,EAAE,uBAAuB,+BAgEzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerVoiceWave.d.ts","sourceRoot":"","sources":["../../../../../src/components/Composer/ComposerVoiceWave.tsx"],"names":[],"mappings":"AAYA,wBAAgB,iBAAiB,gCAsDhC"}
1
+ {"version":3,"file":"ComposerVoiceWave.d.ts","sourceRoot":"","sources":["../../../../../src/components/Composer/ComposerVoiceWave.tsx"],"names":[],"mappings":"AAaA,wBAAgB,iBAAiB,gCAwDhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Message/MarkdownContent/MarkdownContent.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,YAAS,CAAC;AAG3E,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,WAAW,EACX,QAAgB,EAChB,KAAK,GACN,EAAE,oBAAoB,sCAiFtB"}
1
+ {"version":3,"file":"MarkdownContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Message/MarkdownContent/MarkdownContent.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,YAAS,CAAC;AAG3E,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,WAAW,EACX,QAAgB,EAChB,KAAK,GACN,EAAE,oBAAoB,sCAoGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageWaiting.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/MessageWaiting.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAEnD,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,+BAqD5D"}
1
+ {"version":3,"file":"MessageWaiting.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/MessageWaiting.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAEnD,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,+BAuD5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unif/react-native-chat",
3
- "version": "4.6.2",
3
+ "version": "4.6.4",
4
4
  "description": "Unif React Native 聊天组件:消息列表、输入、附件与交互反馈",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -69,8 +69,9 @@
69
69
  "@release-it/conventional-changelog": "^12.0.0",
70
70
  "@testing-library/react-native": "13.3.3",
71
71
  "@types/react": "^19.2.0",
72
- "@unif/react-native-design": "^1.7.0",
72
+ "@unif/react-native-design": "^1.18.0",
73
73
  "@unif/react-native-icons": "^0.5.0",
74
+ "@unif/react-native-logger": "^0.2.2",
74
75
  "commitlint": "^21.2.1",
75
76
  "del-cli": "^7.0.0",
76
77
  "eslint": "^9.39.5",
@@ -99,7 +100,7 @@
99
100
  },
100
101
  "peerDependencies": {
101
102
  "@callstack/liquid-glass": ">=0.8.2 <0.9.0",
102
- "@unif/react-native-design": "^1.7.0",
103
+ "@unif/react-native-design": "^1.18.0",
103
104
  "@unif/react-native-icons": ">=0.3.0 <1.0.0",
104
105
  "react": ">=19.2.3 <20.0.0",
105
106
  "react-native": ">=0.86.0",
@@ -135,7 +136,7 @@
135
136
  },
136
137
  "release-it": {
137
138
  "git": {
138
- "commitMessage": "chore: release ${version} [skip ci]",
139
+ "commitMessage": "chore: release ${version} 发布版本 [skip ci]",
139
140
  "tagName": "v${version}",
140
141
  "requireCommits": true
141
142
  },
@@ -1,5 +1,9 @@
1
1
  import { ActivityIndicator, Pressable, View } from 'react-native';
2
- import { useColors, useThemedStyles } from '@unif/react-native-design';
2
+ import {
3
+ useColors,
4
+ useMotionActive,
5
+ useThemedStyles,
6
+ } from '@unif/react-native-design';
3
7
  import {
4
8
  COMPOSER_ACTION_ICON_SIZE,
5
9
  COMPOSER_PRIMARY_ICON_SIZE,
@@ -19,6 +23,7 @@ export function ComposerIconAction({
19
23
  visual = 'icon',
20
24
  }: ComposerIconActionProps) {
21
25
  const colors = useColors();
26
+ const motionActive = useMotionActive();
22
27
  const styles = useThemedStyles(createStyles);
23
28
  const unavailable = disabled || busy;
24
29
  const { mousePressed, ...mouseHandlers } = useMousePress(unavailable);
@@ -55,7 +60,12 @@ export function ComposerIconAction({
55
60
  ]}
56
61
  >
57
62
  {busy ? (
58
- <ActivityIndicator size="small" color={color} />
63
+ <ActivityIndicator
64
+ size="small"
65
+ color={color}
66
+ animating={motionActive}
67
+ hidesWhenStopped={false}
68
+ />
59
69
  ) : (
60
70
  <Glyph
61
71
  size={
@@ -2,6 +2,7 @@ import { useEffect, useState } from 'react';
2
2
  import { Animated, Easing, Platform, View } from 'react-native';
3
3
  import {
4
4
  usePrefersReducedMotion,
5
+ useMotionActive,
5
6
  useThemedStyles,
6
7
  } from '@unif/react-native-design';
7
8
  import {
@@ -13,12 +14,14 @@ import { createStyles } from './styles';
13
14
  export function ComposerVoiceWave() {
14
15
  const styles = useThemedStyles(createStyles);
15
16
  const reducedMotion = usePrefersReducedMotion();
17
+ const active = useMotionActive();
16
18
  const [values] = useState(() =>
17
19
  COMPOSER_VOICE_WAVE_PATTERN.map(
18
20
  (group) => new Animated.Value(group.from / Math.max(group.from, group.to))
19
21
  )
20
22
  );
21
23
  useEffect(() => {
24
+ if (!active) return;
22
25
  const animations = COMPOSER_VOICE_WAVE_PATTERN.map((group, index) => {
23
26
  const value = values[index]!;
24
27
  const maximum = Math.max(group.from, group.to);
@@ -42,7 +45,7 @@ export function ComposerVoiceWave() {
42
45
  if (!reducedMotion) animations.forEach((animation) => animation.start());
43
46
  return () => animations.forEach((animation) => animation.stop());
44
47
  // 波形规格固定,输入文字更新不重启装饰动画。
45
- }, [reducedMotion, values]);
48
+ }, [active, reducedMotion, values]);
46
49
  return (
47
50
  <View
48
51
  style={styles.wave}
@@ -24,6 +24,25 @@ export function MarkdownContent({
24
24
  );
25
25
  const markdown = useMemo(() => {
26
26
  const instance = new Renderer();
27
+ const renderList = instance.list.bind(instance);
28
+ instance.list = (ordered, items, listStyle, textStyle, startIndex = 1) => {
29
+ if (!ordered)
30
+ return renderList(ordered, items, listStyle, textStyle, startIndex);
31
+ // 每行独立保留编号宽度,追加两位数编号不再挤压已有正文。
32
+ return items.map((item, index) => {
33
+ const content = isValidElement(item)
34
+ ? cloneElement(item, { key: index })
35
+ : item;
36
+ const row = renderList(
37
+ true,
38
+ [content],
39
+ listStyle,
40
+ textStyle,
41
+ startIndex + index
42
+ );
43
+ return isValidElement(row) ? cloneElement(row, { key: index }) : row;
44
+ });
45
+ };
27
46
  const renderCode = instance.code.bind(instance);
28
47
  instance.code = (value, language, containerStyle, textStyle) =>
29
48
  renderCode(value, language, containerStyle, {
@@ -2,6 +2,7 @@ import { useEffect, useState } from 'react';
2
2
  import { Animated, Easing, Platform, Text, View } from 'react-native';
3
3
  import {
4
4
  usePrefersReducedMotion,
5
+ useMotionActive,
5
6
  useThemedStyles,
6
7
  } from '@unif/react-native-design';
7
8
  import {
@@ -15,10 +16,12 @@ import type { MessageWaitingProps } from './types';
15
16
  export function MessageWaiting({ label }: MessageWaitingProps) {
16
17
  const styles = useThemedStyles(createStyles);
17
18
  const reducedMotion = usePrefersReducedMotion();
19
+ const active = useMotionActive();
18
20
  const [values] = useState(() =>
19
21
  MESSAGE_WAITING_DOT_DELAYS.map(() => new Animated.Value(1))
20
22
  );
21
23
  useEffect(() => {
24
+ if (!active) return;
22
25
  const animations = MESSAGE_WAITING_DOT_DELAYS.map((delay, index) => {
23
26
  const value = values[index]!;
24
27
  value.setValue(reducedMotion ? 1 : MESSAGE_WAITING_DOT_MIN_OPACITY);
@@ -40,7 +43,7 @@ export function MessageWaiting({ label }: MessageWaitingProps) {
40
43
  });
41
44
  if (!reducedMotion) animations.forEach((animation) => animation.start());
42
45
  return () => animations.forEach((animation) => animation.stop());
43
- }, [reducedMotion, values]);
46
+ }, [active, reducedMotion, values]);
44
47
  return (
45
48
  <View
46
49
  style={styles.waitingRow}