fix(app): SVG-Anhaenge mit SvgUri rendern statt Image
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ import {
|
|||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||||
import RNFS from 'react-native-fs';
|
import RNFS from 'react-native-fs';
|
||||||
|
import { SvgUri } from 'react-native-svg';
|
||||||
import rvs, { RVSMessage, ConnectionState } from '../services/rvs';
|
import rvs, { RVSMessage, ConnectionState } from '../services/rvs';
|
||||||
import audioService from '../services/audio';
|
import audioService from '../services/audio';
|
||||||
import wakeWordService from '../services/wakeword';
|
import wakeWordService from '../services/wakeword';
|
||||||
@@ -113,7 +114,9 @@ const ChatImage: React.FC<{
|
|||||||
onError: () => void;
|
onError: () => void;
|
||||||
}> = ({ uri, onPress, onError }) => {
|
}> = ({ uri, onPress, onError }) => {
|
||||||
const [aspectRatio, setAspectRatio] = useState<number>(4 / 3);
|
const [aspectRatio, setAspectRatio] = useState<number>(4 / 3);
|
||||||
|
const isSvg = /\.svg(?:\?|$)/i.test(uri);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (isSvg) return; // SvgUri hat kein getSize
|
||||||
let cancelled = false;
|
let cancelled = false;
|
||||||
Image.getSize(uri, (w, h) => {
|
Image.getSize(uri, (w, h) => {
|
||||||
if (!cancelled && w > 0 && h > 0) {
|
if (!cancelled && w > 0 && h > 0) {
|
||||||
@@ -124,7 +127,16 @@ const ChatImage: React.FC<{
|
|||||||
}
|
}
|
||||||
}, () => {});
|
}, () => {});
|
||||||
return () => { cancelled = true; };
|
return () => { cancelled = true; };
|
||||||
}, [uri]);
|
}, [uri, isSvg]);
|
||||||
|
if (isSvg) {
|
||||||
|
return (
|
||||||
|
<TouchableOpacity onPress={onPress} activeOpacity={0.8}>
|
||||||
|
<View style={[CHAT_IMAGE_STYLE, { height: 260, alignItems: 'center', justifyContent: 'center' }]}>
|
||||||
|
<SvgUri uri={uri} width="100%" height="100%" onError={onError} />
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
);
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<TouchableOpacity onPress={onPress} activeOpacity={0.8}>
|
<TouchableOpacity onPress={onPress} activeOpacity={0.8}>
|
||||||
<Image
|
<Image
|
||||||
|
|||||||
Reference in New Issue
Block a user