snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
This commit is contained in:
26
react/features/base/icons/components/SvgXmlIcon.web.tsx
Normal file
26
react/features/base/icons/components/SvgXmlIcon.web.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import React, { useMemo } from 'react';
|
||||
|
||||
/**
|
||||
* SVG rendering component.
|
||||
*
|
||||
* @returns {JSX.Element}
|
||||
*/
|
||||
const SvgXmlIcon = ({ src, ...rest }: {
|
||||
src: string;
|
||||
}): JSX.Element => {
|
||||
const svgDocument = new DOMParser().parseFromString(src, 'image/svg+xml');
|
||||
const element = svgDocument.documentElement.outerHTML;
|
||||
const attributes = useMemo(() => Object.entries(rest).map(
|
||||
([ key, value ]) => `${key}="${value}"`)
|
||||
.join(' '), [ rest ]);
|
||||
|
||||
const html = element.replace('<svg', `<svg ${attributes}`);
|
||||
|
||||
return (
|
||||
<div // eslint-disable-next-line react/no-danger
|
||||
dangerouslySetInnerHTML = {{ __html: html }}
|
||||
{ ...rest } />
|
||||
);
|
||||
};
|
||||
|
||||
export default SvgXmlIcon;
|
||||
Reference in New Issue
Block a user