From 9ed2b801a0b63d6437ef54d3a72e0bb53da4c385 Mon Sep 17 00:00:00 2001 From: Luke De Feo Date: Thu, 3 Aug 2023 04:16:22 -0700 Subject: [PATCH] Make screen recording state more obvious Summary: Feedback from support group said it wasnt clear when recording was on Reviewed By: antonk52 Differential Revision: D48027414 fbshipit-source-id: db61a9806da285610e8f550ceff5af4d7b7acb47 --- .../src/chrome/ScreenCaptureButtons.tsx | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/desktop/flipper-ui-core/src/chrome/ScreenCaptureButtons.tsx b/desktop/flipper-ui-core/src/chrome/ScreenCaptureButtons.tsx index 63ff33a6c..40f06fdf7 100644 --- a/desktop/flipper-ui-core/src/chrome/ScreenCaptureButtons.tsx +++ b/desktop/flipper-ui-core/src/chrome/ScreenCaptureButtons.tsx @@ -7,13 +7,17 @@ * @format */ -import {Button as AntButton, message} from 'antd'; -import React, {useState, useCallback} from 'react'; +import {message} from 'antd'; +import React, {useState, useCallback, useEffect} from 'react'; import {capture, getCaptureLocation, getFileName} from '../utils/screenshot'; -import {CameraOutlined, VideoCameraOutlined} from '@ant-design/icons'; +import { + CameraOutlined, + VideoCameraFilled, + VideoCameraOutlined, +} from '@ant-design/icons'; import {useStore} from '../utils/useStore'; import {getRenderHostInstance} from 'flipper-frontend-core'; -import {path} from 'flipper-plugin'; +import {path, theme} from 'flipper-plugin'; import {NavbarButton} from '../sandy-chrome/Navbar'; async function openFile(path: string) { @@ -85,11 +89,26 @@ export function NavbarScreenRecordButton() { } }, [selectedDevice, isRecording]); + const [red, setRed] = useState(false); + useEffect(() => { + if (isRecording) { + setRed(true); + const handle = setInterval(() => { + setRed((red) => !red); + }, FlashInterval); + + return () => { + clearInterval(handle); + }; + } + }, [isRecording]); + return ( ); } + +const FlashInterval = 600;