1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クリップボードにコピーし、「コピーしました」メッセージを表示する

Last updated at Posted at 2022-08-31

押すだけ簡単コピペ機能のメッセージを表示してみた

  • 備忘録用に、Reactで簡単に作ってみました。
  • この記事を読むと、Material-UIのみで次のようなUIが実装できます。
    作ったものもスクショ

クリップボードにコピーする

const anyText = "コピーさせたい内容"
navigator.clipboard.writeText(anyText);

メッセージの表示

  • Material-UIのTooltip APIを使うと、簡単に実装できます。
import { Tooltip } from "@mui/material";

全体のサンプルコード

sample.tsx
import { Tooltip } from "@mui/material";

async function copyToClipboard(text: string) {
  try {
    await navigator.clipboard.writeText(text)
  } catch (error) {
    console.log((error) || 'コピーに失敗しました')
  }
}

const Sample: React.FC<{}> = () => {
    const anyText = "コピーさせたい内容";
    const [openTip, setOpenTip] = useState<boolean>(false);
    
    const handleCloseTip = (): void => {
        setOpenTip(false);
    };
    
    const handleClickButton = (): void => {
        setOpenTip(true);
        copyToClipboard(anyText);
    };

    return(
        <>
            <h1>サンプル</h1>
            <Tooltip
                arrow
                open={openTip}
                onClose={handleCloseTip}
                disableHoverListener 
                placement="top"
                title="Copied!"
              >
                <button onClick={handleClickButton}>
                  クリップボードにコピーする
                </button>
              </Tooltip>
        </>
    );
}

参考資料

クリップボードにテキストをコピーするボタンの実装
React+material-uiでコピーボタン付きのテキストボックスを作る

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?