Skip to content

Releases: afonsograca/react-native-qrcode-composer

Release 0.3.0

Choose a tag to compare

@afonsograca afonsograca released this 10 Jul 18:12
1d4f427

Added

  • Typed QR code contents: the value prop now accepts QRCodeContents, a union of string and typed content objects for plain text, URLs, email, phone, SMS, WiFi, geolocation, vCard, MeCard, and calendar events
  • The content interfaces (PlainText, URLContent, Email, Phone, SMS, WiFi, GeolocationContent, VCard, MeCard, CalendarEvent) and QRCodeContents are exported from the package
  • Support for the standard ref prop, forwarded to the underlying react-native-svg Svg element
  • The package is declared side-effect-free (sideEffects: false), letting bundlers tree-shake unused exports

Changed

  • Breaking: the value prop is now required and typed QRCodeContents; the 'QR code message' default has been removed
  • Breaking: on encoding/render failure the component now renders nothing (null) instead of a raw Text element with the error message; onError is still invoked when provided
  • Breaking: VCard.birthday and VCard.anniversary are now Date instead of string, consistent with MeCard
  • QRCodeStyle.backgroundColor is now typed ColorValue, widening it to also accept OpaqueColorValue (e.g. PlatformColor); plain strings work as before
  • Breaking: LogoStyle.borderRadius is now applied in pixels to both the logo and its background (the background previously misread it as a fraction of its size, producing oversized radii for values above 2). For a circular logo, set it to half the logo size
  • Breaking: the internal TestProps type is no longer exported

Deprecated

  • The getRef prop — use the standard ref prop instead

Fixed

  • require() of the package no longer throws in Node consumers such as Jest and SSR: removed "type": "module" from package.json and added an exports map
  • MeCard nickname is now emitted with its NICKNAME: key (it was previously appended without a key, corrupting the payload)
  • MeCard payload prefix corrected to MECARD:
  • WiFi, MeCard, vCard, and iCalendar payloads now use spec-compliant backslash escaping instead of percent-encoding
  • vCard and iCalendar payloads now use CRLF line endings
  • Calendar events are now wrapped in BEGIN:VCALENDAR/END:VCALENDAR
  • vCard now encodes all of its typed fields (previously around 20 fields, such as telephone, organization, and title, were silently dropped)
  • VCard.name given as a plain string is now escaped like every other text field (commas and semicolons no longer corrupt the payload)
  • The testID prefix is now applied to the logo's internal nodes (background, clip paths, container), so two QR codes with distinct testIDs no longer collide on them
  • Removed the broken import condition from the package exports map: it pointed Node ESM consumers at ESM-syntax files in a CommonJS package, causing parse failures

Release 0.2.0

Choose a tag to compare

@afonsograca afonsograca released this 21 Jun 14:26

Added

  • The ability to add a corner radius to the QR code's quiet zone

Release 0.1.4

Choose a tag to compare

@afonsograca afonsograca released this 20 Jun 23:28

First release of the react-native-qrcode-composer 🥳

Added

  • Ability to display QR codes with customization