40 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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>
 | 
						|
  );
 | 
						|
});
 |