From 4137a8b5c198a14861aabe74104ae05a48802dcb Mon Sep 17 00:00:00 2001 From: rektdeckard Date: Fri, 24 Dec 2021 16:21:42 -0500 Subject: [PATCH] feat(app): Add flutter snippets and esc-to-close on panel --- src/components/IconGrid/DetailsPanel.tsx | 37 ++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/components/IconGrid/DetailsPanel.tsx b/src/components/IconGrid/DetailsPanel.tsx index 766fc0c..49f15bf 100644 --- a/src/components/IconGrid/DetailsPanel.tsx +++ b/src/components/IconGrid/DetailsPanel.tsx @@ -1,5 +1,6 @@ import React, { useRef, useEffect } from "react"; import { useRecoilValue, useSetRecoilState } from "recoil"; +import { useHotkeys } from "react-hotkeys-hook"; import { motion } from "framer-motion"; import { Svg2Png } from "svg2png-converter"; import { saveAs } from "file-saver"; @@ -59,6 +60,8 @@ const DetailsPanel: React.FC = (props) => { const [copied, setCopied] = useTransientState(false, 2000); const ref = useRef(null); + useHotkeys("esc", () => setOpen(false)); + useEffect( () => ReactGA.event({ category: "Grid", action: "Details", label: name }), [name] @@ -82,17 +85,28 @@ const DetailsPanel: React.FC = (props) => { react: `<${Icon.displayName} size={${size}} ${ color !== "#000000" ? `color="${color}" ` : "" }${weight === "regular" ? "" : `weight="${weight}" `}/>`, - vue: ``, + flutter: + weight === "duotone" + ? "This weight is not yet supported" + : `Icon(\n PhosphorIcons.${ + Icon.displayName!.replace(/^\w/, (c) => c.toLowerCase()) + }${weight === "regular" + ? "" + : weight.replace(/^\w/, (c) => c.toUpperCase()) + },\n size: ${size.toFixed(1)},\n color: Color(0xff${ + color.replace("#", "") + }),\n)`, }; const handleCopySnippet = ( event: React.MouseEvent, - type: "html" | "react" | "vue" + type: "html" | "react" | "vue" | "flutter" ) => { event.currentTarget.blur(); setCopied(type); @@ -218,6 +232,25 @@ const DetailsPanel: React.FC = (props) => { +
+ Flutter +
+            {snippets.flutter}
+            
+          
+
+