You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

expo-svg-uri

Package Overview
Dependencies
Maintainers
0
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

expo-svg-uri

Render an SVG Image

2.0.0
latest
Source
npmnpm
Version published
Weekly downloads
373
-17.11%
Maintainers
0
Weekly downloads
 
Created
Source

expo-svg-uri

Overview

SvgUri is a React Native component that allows rendering SVG images from either a URI source or raw XML data. It uses react-native-svg for rendering and supports additional props for customization. Now, this component works for both React Native Bare and Expo client applications.

npm bundlephobia

Features

  • Load SVG from a remote URL or local asset
  • Parse and validate SVG XML data
  • Display a custom loading indicator while fetching
  • Provide a fallback component if SVG fails to load
  • Supports additional props from react-native-svg

Installation

npm install --save expo-svg-uri

OR

yarn add expo-svg-uri

OR

pnpm add expo-svg-uri

Usage

Basic Example

import SvgUri from "expo-svg-uri";

export default function Example() {
  return (
    <>
      {/* Load SVG from URL */}
      <SvgUri
        width={200}
        height={200}
        source={{
          uri: "https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/heart.svg",
        }}
      />

      {/* Load SVG from local file */}
      <SvgUri
        width={200}
        height={200}
        source={require("@/assets/images/heart.svg")}
      />

      {/* Load SVG from XML string */}
      <SvgUri
        width={200}
        height={200}
        xml='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
          <path d="M50,30c9-22 42-24 48,0c5,40-40,40-48,65c-8-25-54-25-48-65c 6-24 39-22 48,0 z" fill="#F00" stroke="#000"/>
        </svg>
        '
      />
    </>
  );
}

Props

PropTypeDescription
sourceImageSourcePropType | nullRemote or local source of the SVG file
xmlstring | nullRaw SVG XML string
loadingReact.JSX.ElementCustom loading indicator while fetching
fallbackReact.JSX.ElementComponent displayed if SVG fails to load
onError(error: Error) => voidCallback when an error occurs
...propsSvgProps & AdditionalPropsAny additional props for react-native-svg elements

Handling Errors

If an invalid SVG is provided, the onError prop will be triggered:

<SvgUri
  source={{ uri: "https://example.com/invalid.svg" }}
  onError={(error) => console.error("SVG Error:", error)}
  fallback={<Text>Error loading SVG</Text>}
  loading={<Text>Loading...</Text>}
/>

Notes

  • This component requires react-native-svg to be installed.
  • If using a remote URI, ensure your app has internet permissions enabled.
  • Validate your SVG XML before passing it as a prop.

License

This component is open-source and available under the MIT license.

Author

SvgUri is developed by Thong Dang. You can contact me at thongdn.it@gmail.com.

If you like my project, you can support me or star (like) for it.

expo-svg-uri-buy-me-a-coffee

Keywords

expo

FAQs

Package last updated on 17 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts