- {__('Duplicate snippets', 'code-snippets')}
+ {__('Duplicate snippets', 'code-snippets')}
{__('What should happen if an existing snippet is found with an identical name to an imported snippet?', 'code-snippets')}
diff --git a/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectFiles.tsx b/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectFiles.tsx
index 551a518e..8ad466d8 100644
--- a/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectFiles.tsx
+++ b/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectFiles.tsx
@@ -57,7 +57,7 @@ export const SelectFiles: React.FC = ({
return (
- {__('Choose files', 'code-snippets')}
+ {__('Choose files', 'code-snippets')}
{__('Choose one or more Code Snippets (.xml or .json) files to parse and preview.', 'code-snippets')}
diff --git a/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectedFilesList.tsx b/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectedFilesList.tsx
index 8a44f208..da8b6698 100644
--- a/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectedFilesList.tsx
+++ b/src/js/components/ImportMenu/UploadForm/SelectFiles/SelectedFilesList.tsx
@@ -47,19 +47,19 @@ export interface SelectedFilesListProps {
export const SelectedFilesList: React.FC = ({ files, onRemoveFile }) =>
-
+
{sprintf(
// translators: %d: number of selected files.
__('Selected files: (%d)', 'code-snippets'),
files.length
)}
-
+
{files.map(file =>
-
📄
+
📄
{file.name}
{formatFileSize(file.file.size)}
@@ -68,13 +68,19 @@ export const SelectedFilesList: React.FC
= ({ files, onR
)}
diff --git a/src/js/components/ImportMenu/UploadForm/SelectSnippets/ImportResultDisplay.tsx b/src/js/components/ImportMenu/UploadForm/SelectSnippets/ImportResultDisplay.tsx
index 4f3a22d4..069f5be2 100644
--- a/src/js/components/ImportMenu/UploadForm/SelectSnippets/ImportResultDisplay.tsx
+++ b/src/js/components/ImportMenu/UploadForm/SelectSnippets/ImportResultDisplay.tsx
@@ -22,12 +22,12 @@ export interface ImportResultDisplayProps {
export const ImportResultDisplay: React.FC
= ({ success, message, warnings, step }) =>
-
+
{success ? '✓' : '✕'}
-
+
{'upload' === step && (success
? __('File upload successful', 'code-snippets')
: __('File upload error', 'code-snippets'))}
@@ -35,7 +35,7 @@ export const ImportResultDisplay: React.FC = ({ succes
{'select' === step && (success
? __('Import successful', 'code-snippets')
: __('Import error', 'code-snippets'))}
-
+
{message}
diff --git a/src/js/components/ImportMenu/UploadForm/SelectSnippets/SelectSnippets.tsx b/src/js/components/ImportMenu/UploadForm/SelectSnippets/SelectSnippets.tsx
index 485d2157..008329b6 100644
--- a/src/js/components/ImportMenu/UploadForm/SelectSnippets/SelectSnippets.tsx
+++ b/src/js/components/ImportMenu/UploadForm/SelectSnippets/SelectSnippets.tsx
@@ -67,11 +67,11 @@ const SelectSnippetsForm: React.FC
= ({ availableSnippe
<>
-
{sprintf(
+ {sprintf(
// translators: %d: number of available snippets.
__('Available snippets (%d)', 'code-snippets'),
availableSnippets.length
- )}
+ )}
{__('Select the snippets you would like to import.', 'code-snippets')}
diff --git a/src/js/components/ImportMenu/UploadForm/UploadForm.tsx b/src/js/components/ImportMenu/UploadForm/UploadForm.tsx
index dfe18189..7c52fcee 100644
--- a/src/js/components/ImportMenu/UploadForm/UploadForm.tsx
+++ b/src/js/components/ImportMenu/UploadForm/UploadForm.tsx
@@ -23,50 +23,48 @@ export const UploadForm: React.FC = () => {
const [availableSnippets, setAvailableSnippets] = useState
([])
return (
-
-
-
{__('Upload one or more Code Snippets export files and the snippets will be imported.', 'code-snippets')}
+ <>
+
{__('Upload one or more Code Snippets export files and the snippets will be imported.', 'code-snippets')}
-
- {createInterpolateElement(
- __('Afterward, you will need to visit the All Snippets page to activate the imported snippets.', 'code-snippets'),
- { a: }
- )}
-
+
+ {createInterpolateElement(
+ __('Afterward, you will need to visit the All Snippets page to activate the imported snippets.', 'code-snippets'),
+ { a: }
+ )}
+
- {'upload' === currentStep && !importResult?.success && (
- <>
-
+ {'upload' === currentStep && !importResult?.success && (
+ <>
+
-
{
- setAvailableSnippets(uploadedSnippets)
- setCurrentStep('select')
- }}
- />
- >)}
+ {
+ setAvailableSnippets(uploadedSnippets)
+ setCurrentStep('select')
+ }}
+ />
+ >)}
- {'select' === currentStep && 0 < availableSnippets.length && !importResult?.success && (
- {
- setSelectedFiles(undefined)
+ {'select' === currentStep && 0 < availableSnippets.length && !importResult?.success && (
+ {
+ setSelectedFiles(undefined)
- if (fileInputRef.current) {
- fileInputRef.current.value = ''
- }
+ if (fileInputRef.current) {
+ fileInputRef.current.value = ''
+ }
- setAvailableSnippets([])
- setImportResult(undefined)
- setCurrentStep('upload')
- }}
- />)}
+ setAvailableSnippets([])
+ setImportResult(undefined)
+ setCurrentStep('upload')
+ }}
+ />)}
- {importResult && }
-
-
+ {importResult && }
+ >
)
}
diff --git a/src/js/components/ManageMenu/CommunityCloud/CommunityCloud.tsx b/src/js/components/ManageMenu/CommunityCloud/CommunityCloud.tsx
index c6109564..174fb963 100644
--- a/src/js/components/ManageMenu/CommunityCloud/CommunityCloud.tsx
+++ b/src/js/components/ManageMenu/CommunityCloud/CommunityCloud.tsx
@@ -23,7 +23,7 @@ export const CommunityCloud = () => {
const [isUpsellDialogOpen, setIsUpsellDialogOpen] = useState(false)
return (
-
+ <>
{__('Community Cloud', 'code-snippets')}
+ >
)
}
diff --git a/src/js/components/ManageMenu/SnippetsTable/SnippetsTable.tsx b/src/js/components/ManageMenu/SnippetsTable/SnippetsTable.tsx
index 5d69f4ee..9967f58e 100644
--- a/src/js/components/ManageMenu/SnippetsTable/SnippetsTable.tsx
+++ b/src/js/components/ManageMenu/SnippetsTable/SnippetsTable.tsx
@@ -118,7 +118,7 @@ const SnippetsTableInner = () => {
const [isUpgradeDialogOpen, setIsUpgradeDialogOpen] = useState(false)
return (
-
+ >
)
}
diff --git a/src/js/components/common/Toolbar.tsx b/src/js/components/common/Toolbar.tsx
index 2fe61a7d..56f7a7c4 100644
--- a/src/js/components/common/Toolbar.tsx
+++ b/src/js/components/common/Toolbar.tsx
@@ -14,6 +14,8 @@ interface NavLink {
external?: boolean
icon?: ReactNode
pro?: boolean
+ pageSlug?: string
+ subpage?: string
}
const UPPER_NAV_LINKS: NavLink[] = [
@@ -32,7 +34,8 @@ const UPPER_NAV_LINKS: NavLink[] = [
{
name: 'welcome',
url: window.CODE_SNIPPETS?.urls.welcome,
- label: __("What's New", 'code-snippets')
+ label: __("What's New", 'code-snippets'),
+ pageSlug: 'code-snippets-welcome'
}
]
@@ -41,30 +44,35 @@ const LOWER_NAV_LINKS: NavLink[] = [
name: 'snippets',
url: window.CODE_SNIPPETS?.urls.manage,
label: __('Snippets', 'code-snippets'),
- icon:
+ icon: ,
+ pageSlug: 'snippets'
},
{
name: 'cloud-community',
label: __('Community Cloud', 'code-snippets'),
- icon:
+ icon: ,
+ subpage: 'cloud-community'
},
{
name: 'cloud-library',
label: __('My Library', 'code-snippets'),
icon: ,
- pro: true
+ pro: true,
+ subpage: 'cloud-library'
},
{
name: 'cloud-teams',
label: __('My Teams', 'code-snippets'),
icon: ,
- pro: true
+ pro: true,
+ subpage: 'cloud-teams'
},
{
name: 'settings',
url: window.CODE_SNIPPETS?.urls.settings,
label: __('Settings', 'code-snippets'),
- icon:
+ icon: ,
+ pageSlug: 'snippets-settings'
}
]
@@ -86,14 +94,14 @@ const UpperNav: React.FC = ({ setIsUpsellDialogOpen }) =>
-const currentPage = fetchQueryParam('subpage') ?? fetchQueryParam('page')
+const currentPage = fetchQueryParam('page')
+const currentSubpage = fetchQueryParam('subpage')
+
+const isActiveLink = ({ pageSlug, subpage }: NavLink): boolean => {
+ if (subpage) {
+ return currentSubpage === subpage
+ }
+ if (pageSlug) {
+ return !currentSubpage && currentPage === pageSlug
+ }
+ return false
+}
const LowerNav: React.FC
= ({ setIsUpsellDialogOpen }) =>