Skip to content

[Feature] Add MergeOutlined icon#1426

Open
prarii wants to merge 1 commit intolayer5io:masterfrom
prarii:feature/prarii/1418
Open

[Feature] Add MergeOutlined icon#1426
prarii wants to merge 1 commit intolayer5io:masterfrom
prarii:feature/prarii/1418

Conversation

@prarii
Copy link
Copy Markdown

@prarii prarii commented Apr 20, 2026

Notes for Reviewers

This PR fixes #1418

Signed commits

  • Yes, I signed my commits.

@prarii prarii changed the title Feature/prarii/1418 [Feature] Add MergeOutlined icon Apr 20, 2026
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces two new SVG icon components, MergeOutlinedIcon and SettingsRemoteIcon, and exports them from the main icons index. Feedback suggests optimizing these components by wrapping them in React.memo to prevent unnecessary re-renders and adding displayName for better debugging. There is also a suggestion to review the naming convention to ensure consistency with existing icons by potentially removing the Icon suffix.

Comment on lines +4 to +10
export const MergeOutlinedIcon: React.FC<SvgIconProps> = (props) => {
return (
<SvgIcon {...props}>
<path d="M6.41 21 5 19.59l4.83-4.83c.75-.75 1.17-1.77 1.17-2.83v-5.1L9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83v5.1c0 1.06.42 2.08 1.17 2.83L19 19.59 17.59 21 12 15.41z" />
</SvgIcon>
);
};
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For SVG icons in a React application, it is a best practice to wrap the component in React.memo to prevent unnecessary re-renders when the parent component updates. Additionally, adding a displayName is helpful for debugging in React DevTools.

Also, consider if the Icon suffix is necessary for consistency. While some icons in this repository use it, the majority (e.g., Search, Settings, Share) do not.

Suggested change
export const MergeOutlinedIcon: React.FC<SvgIconProps> = (props) => {
return (
<SvgIcon {...props}>
<path d="M6.41 21 5 19.59l4.83-4.83c.75-.75 1.17-1.77 1.17-2.83v-5.1L9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83v5.1c0 1.06.42 2.08 1.17 2.83L19 19.59 17.59 21 12 15.41z" />
</SvgIcon>
);
};
export const MergeOutlinedIcon = React.memo((props: SvgIconProps) => (
<SvgIcon {...props}>
<path d="M6.41 21 5 19.59l4.83-4.83c.75-.75 1.17-1.77 1.17-2.83v-5.1L9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83v5.1c0 1.06.42 2.08 1.17 2.83L19 19.59 17.59 21 12 15.41z" />
</SvgIcon>
));
MergeOutlinedIcon.displayName = 'MergeOutlinedIcon';

Comment thread src/icons/SettingsRemoteIcon.tsx Outdated
Comment on lines +4 to +10
export const SettingsRemoteIcon: React.FC<SvgIconProps> = (props) => {
return (
<SvgIcon {...props}>
<path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1m-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05M12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0" />
</SvgIcon>
);
};
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Similar to other icon components, wrapping this in React.memo will improve performance by avoiding redundant re-renders. Explicitly setting the displayName also improves the debugging experience.

Regarding naming, since a Settings icon already exists without the Icon suffix, naming this SettingsRemote would be more consistent with the overall project structure.

Suggested change
export const SettingsRemoteIcon: React.FC<SvgIconProps> = (props) => {
return (
<SvgIcon {...props}>
<path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1m-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05M12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0" />
</SvgIcon>
);
};
export const SettingsRemoteIcon = React.memo((props: SvgIconProps) => (
<SvgIcon {...props}>
<path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1m-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05M12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0" />
</SvgIcon>
));
SettingsRemoteIcon.displayName = 'SettingsRemoteIcon';

Signed-off-by: Prarthana <226818177+prarii@users.noreply.github.com>
@prarii prarii force-pushed the feature/prarii/1418 branch from 5c1349a to 28119ba Compare April 20, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]Add MergeOutlined icon

1 participant