signal-desktop/ts/components/stickers/StickerPackInstallButton.tsx

41 lines
1.1 KiB
TypeScript
Raw Normal View History

2020-10-30 20:34:04 +00:00
// Copyright 2019-2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
2022-06-07 00:48:02 +00:00
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;
};
2022-06-07 00:48:02 +00:00
export type Props = OwnProps & ButtonHTMLAttributes<HTMLButtonElement>;
export const StickerPackInstallButton = React.forwardRef<
HTMLButtonElement,
Props
2022-11-18 00:45:19 +00:00
>(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('stickers--StickerManager--Install')}
{...props}
>
{installed
? i18n('stickers--StickerManager--Uninstall')
: i18n('stickers--StickerManager--Install')}
</button>
);
});