diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx new file mode 100644 index 000000000..3c7cec297 --- /dev/null +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx @@ -0,0 +1,27 @@ +import React from 'react'; + +import copy from 'copy-to-clipboard'; + +import i18n from '../../../i18n'; + +const CopyEditorButton = ({ editor }) => { + const className = 'btn btn-sm btn-secondary cb-btn-secondary cb-rounded mx-1'; + const text = i18n.t('Copy'); + + const handleCopyClick = () => { + copy(editor.value); + }; + + return ( + + ); +}; + +export default CopyEditorButton; diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx index aa4c232df..813244345 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx @@ -6,6 +6,7 @@ import GameRoomModes from '../../config/gameModes'; import Placements from '../../config/placements'; // import DarkModeButton from './DarkModeButton'; +import CopyEditorButton from './CopyEditorButton'; import EditorResultIcon from './EditorResultIcon'; import GameActionButtons from './GameActionButtons'; import GameBanPlayerButton from './GameBanPlayerButton'; @@ -66,22 +67,27 @@ const EditorToolbar = ({ {showControlBtns && !isHistory && editorState !== 'banned' && ( )} -
- {!showControlBtns && ( + {!showControlBtns && ( +
- )} - {isAdmin && !showControlBtns && ( - - )} -
+ {isAdmin && ( + <> + + + + )} +
+ )}
diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoPanel.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoPanel.jsx index 69c6f6b71..966ac39e8 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoPanel.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoPanel.jsx @@ -24,7 +24,7 @@ const InfoPanel = ({ return ( <>
-
+