signal-desktop/ts/components/stickers/StickerPackInstallButton.tsx
2023-03-29 17:03:25 -07:00

40 lines
1.1 KiB
TypeScript

// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ButtonHTMLAttributes } from 'react';
import * as React from 'react';
import classNames from 'classnames';
import type { LocalizerType } from '../../types/Util';
export type OwnProps = {
readonly installed: boolean;
readonly i18n: LocalizerType;
readonly blue?: boolean;
};
export type Props = OwnProps & ButtonHTMLAttributes<HTMLButtonElement>;
export const StickerPackInstallButton = React.forwardRef<
HTMLButtonElement,
Props
>(function StickerPackInstallButtonInner(
{ i18n, installed, blue, ...props }: Props,
ref
) {
return (
<button
type="button"
ref={ref}
className={classNames({
'module-sticker-manager__install-button': true,
'module-sticker-manager__install-button--blue': blue,
})}
aria-label={i18n('icu:stickers--StickerManager--Install')}
{...props}
>
{installed
? i18n('icu:stickers--StickerManager--Uninstall')
: i18n('icu:stickers--StickerManager--Install')}
</button>
);
});