Skip to content

Support Icon Replacements #3449

@zbarbuto

Description

@zbarbuto

Motivation

Stream offers a ton of entrypoints for customising small elements of the UI without having to replace entire components which is great. However, replacing icons often seems to require replacing an entire component.

As an example, the imports the svg <Plus /> and uses it. This means if you want to have a custom icon for the attach button, you have to duplicate the entire <AttachButton /> at the <Channel /> level just to replace the icon (which in the latest version on npm also means replicating NativeAttachmentPicker since it's not exported).

Proposed solution

Ideally, any SVG Icons can be easily replaced through theming like other components - probably either through <OverlayProvider /> or <Channel /> - without having to replicate the entire component.

Something like:

<OverlayProvider
  value={{
    icons: {
       Attach: MyCustomAttachSvg,
       SendRight: Envelope,
       SendUp: Envelope,
       // ...
    }
  }}
/>

Related:

#128 #79 #1668

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions