From 2694151f1722b1040ac7f50b9a8afc3772f797ea Mon Sep 17 00:00:00 2001 From: Mohan Raj Date: Sat, 25 Mar 2023 18:33:51 +0000 Subject: [PATCH 1/4] add ts snippet --- src/components/SdkModal.tsx | 8 ++++++-- src/components/Snippet.tsx | 10 ++++++++-- src/components/TsPanel.tsx | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 src/components/TsPanel.tsx diff --git a/src/components/SdkModal.tsx b/src/components/SdkModal.tsx index ce16d96..032a82c 100644 --- a/src/components/SdkModal.tsx +++ b/src/components/SdkModal.tsx @@ -4,6 +4,7 @@ import { useMemo, useState, useEffect } from '@wordpress/element'; import { useCopyToClipboard } from '@wordpress/compose'; import { Flag } from '../../types'; import { __ } from '@wordpress/i18n'; +import TsPanel from './TsPanel'; interface SdkModalProps { item: Flag; @@ -84,7 +85,7 @@ domReady(function () { variant={'tertiary'} ref={phpRef} /> - +

{__('JavaScript Snippet', 'mr-feature-flags')}

@@ -101,7 +102,10 @@ domReady(function () { variant={'tertiary'} ref={jsRef} /> - + +
+
+
); diff --git a/src/components/Snippet.tsx b/src/components/Snippet.tsx index ccb8dbe..25bb9a9 100644 --- a/src/components/Snippet.tsx +++ b/src/components/Snippet.tsx @@ -1,9 +1,15 @@ import SyntaxHighlighter from 'react-syntax-highlighter'; import { a11yDark } from 'react-syntax-highlighter/dist/esm/styles/hljs'; -const Snippet = ({ data }: { data: string }): JSX.Element => { +const Snippet = ({ + data, + language, +}: { + data: string; + language: string; +}): JSX.Element => { return ( - + {data} ); diff --git a/src/components/TsPanel.tsx b/src/components/TsPanel.tsx new file mode 100644 index 0000000..af55808 --- /dev/null +++ b/src/components/TsPanel.tsx @@ -0,0 +1,37 @@ +import { PanelBody, PanelRow } from '@wordpress/components'; +import { useMemo } from '@wordpress/element'; + +import Snippet from './Snippet'; + +const TsPanel = (): JSX.Element => { + const jsSnippet = useMemo(() => { + return `declare namespace mrFeatureFlag { + interface flags { + id: number; + name: string; + enabled: boolean; + } + export interface FeatureFlagProps { + isEnabled: (flag: string) => boolean; + flags: flags[]; + } +} + +declare global { + interface Window { + mrFeatureFlags: mrFeatureFlag.FeatureFlagProps; + } +} + +export {};`; + }, []); + return ( + + + + + + ); +}; + +export default TsPanel; From c213e0da204875b832e447e4cd5fc2637f80d1d7 Mon Sep 17 00:00:00 2001 From: Mohan Raj Date: Sat, 25 Mar 2023 20:28:19 +0000 Subject: [PATCH 2/4] add ts support and fix clipboard button --- src/components/SdkModal.tsx | 19 ++++++-------- src/components/TsPanel.tsx | 37 -------------------------- src/components/TsSupport.tsx | 50 ++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 48 deletions(-) delete mode 100644 src/components/TsPanel.tsx create mode 100644 src/components/TsSupport.tsx diff --git a/src/components/SdkModal.tsx b/src/components/SdkModal.tsx index 032a82c..66ce828 100644 --- a/src/components/SdkModal.tsx +++ b/src/components/SdkModal.tsx @@ -4,7 +4,7 @@ import { useMemo, useState, useEffect } from '@wordpress/element'; import { useCopyToClipboard } from '@wordpress/compose'; import { Flag } from '../../types'; import { __ } from '@wordpress/i18n'; -import TsPanel from './TsPanel'; +import TsSupport from './TsSupport'; interface SdkModalProps { item: Flag; @@ -74,12 +74,10 @@ domReady(function () {