Files
astuto/app/javascript/components/common/Icons.tsx

109 lines
3.0 KiB
TypeScript
Raw Normal View History

2022-08-22 10:38:03 +02:00
import * as React from 'react';
import I18n from 'i18n-js';
2024-12-20 14:06:48 +01:00
import { Tooltip } from 'react-tooltip'
2022-08-22 10:38:03 +02:00
import { BsReply } from 'react-icons/bs';
2024-07-12 20:38:46 +02:00
import { FiEdit, FiDelete, FiSettings } from 'react-icons/fi';
2022-08-22 10:38:03 +02:00
import { ImCancelCircle } from 'react-icons/im';
import { TbLock, TbLockOpen } from 'react-icons/tb';
2024-12-20 14:06:48 +01:00
import { GrTest, GrClearOption, GrOverview } from 'react-icons/gr';
import { BiLike, BiSolidLike } from "react-icons/bi";
2024-07-12 20:38:46 +02:00
import {
MdContentCopy,
MdDone,
MdOutlineArrowBack,
MdOutlineLibraryBooks,
MdVerified,
MdCheck,
MdClear,
2024-12-20 14:06:48 +01:00
MdAdd,
2024-07-12 20:38:46 +02:00
} from 'react-icons/md';
2024-12-20 14:06:48 +01:00
import { FaUserNinja, FaMarkdown } from "react-icons/fa";
import { FaDroplet } from "react-icons/fa6";
2022-08-22 10:38:03 +02:00
export const EditIcon = () => <FiEdit />;
export const DeleteIcon = () => <FiDelete />;
export const CancelIcon = () => <ImCancelCircle />;
export const BlockIcon = () => <TbLock />;
export const UnblockIcon = () => <TbLockOpen />;
export const CopyIcon = () => <MdContentCopy />;
export const TestIcon = () => <GrTest />;
export const DoneIcon = () => <MdDone />;
export const BackIcon = () => <MdOutlineArrowBack />;
2024-01-23 18:50:42 +01:00
export const ReplyIcon = () => <BsReply />;
export const LearnMoreIcon = () => <MdOutlineLibraryBooks />;
export const StaffIcon = () => (
2024-12-20 14:06:48 +01:00
<>
<span data-tooltip-id="staff-tooltip" data-tooltip-content={I18n.t('common.user_staff')} className="staffIcon">
<MdVerified />
</span>
2024-12-20 14:06:48 +01:00
<Tooltip id="staff-tooltip" />
</>
);
2024-02-15 22:30:41 +01:00
export const ClearIcon = () => <GrClearOption />;
export const LikeIcon = ({size = 32}) => <BiLike size={size} />;
2024-07-12 20:38:46 +02:00
export const SolidLikeIcon = ({size = 32}) => <BiSolidLike size={size} />;
export const SettingsIcon = () => <FiSettings />;
2024-12-20 14:06:48 +01:00
export const AnonymousIcon = ({size = 32}) => (
<>
<span data-tooltip-id="anonymous-tooltip" data-tooltip-content={I18n.t('defaults.user_full_name')} className="anonymousIcon">
<FaUserNinja size={size} />
</span>
<Tooltip id="anonymous-tooltip" />
</>
);
2024-07-12 20:38:46 +02:00
export const ApproveIcon = () => <MdCheck />;
2024-12-20 14:06:48 +01:00
export const RejectIcon = () => <MdClear />;
export const AddIcon = () => <MdAdd />;
export const PreviewIcon = ({size = 24}) => <GrOverview size={size} />;
export const LiquidIcon = ({size = 18}) => (
<>
<a href="https://shopify.github.io/liquid/" target="_blank" rel="noreferrer" className="link">
<span
data-tooltip-id="liquid-tooltip"
data-tooltip-content={I18n.t('common.language_supported', { language: 'Liquid' })}
className="liquidIcon"
>
<FaDroplet size={size} />
</span>
</a>
<Tooltip id="liquid-tooltip" />
</>
);
export const MarkdownIcon = ({size = 24, style = {}}) => (
<>
<a href="https://www.markdownguide.org/basic-syntax/" target="_blank" rel="noreferrer" className="link">
<span
data-tooltip-id="markdown-tooltip"
data-tooltip-content={I18n.t('common.language_supported', { language: 'Markdown' })}
style={{...style, ...{opacity: 0.75}}}
className="markdownIcon"
>
<FaMarkdown size={size} />
</span>
</a>
<Tooltip id="markdown-tooltip" />
</>
);