STRATO-apps/wordpress_03/app/wp-content/plugins/code-snippets/js/components/Import/ImportApp.tsx

SHA-256: 5f2d1d3f348ff8d4032268d6a10a16b0a3ac800d0935d9a3a849a9c6d5b10c0f
import React, { useState, useEffect } from 'react'
import { __ } from '@wordpress/i18n'
import { FileUploadForm } from './FromFileUpload/FileUploadForm'
import { ImportForm } from './FromOtherPlugins/ImportForm'
import { ImportSection } from './shared'

type TabType = 'upload' | 'plugins'

export const ImportApp: React.FC = () => {
	const [activeTab, setActiveTab] = useState<TabType>('upload')

	useEffect(() => {
		const urlParams = new URLSearchParams(window.location.search)
		const tabParam = urlParams.get('tab') as TabType
		if (tabParam === 'plugins' || tabParam === 'upload') {
			setActiveTab(tabParam)
		}
	}, [])

	const handleTabChange = (tab: TabType) => {
		setActiveTab(tab)
		
		const url = new URL(window.location.href)
		url.searchParams.set('tab', tab)
		window.history.replaceState({}, '', url)
	}

	return (
		<div className="narrow" style={{ maxWidth: '800px' }}>
			<h2 className="nav-tab-wrapper" style={{ marginBottom: '20px' }}>
				<a
					className={`nav-tab${activeTab === 'upload' ? ' nav-tab-active' : ''}`}
					href="#"
					onClick={(e) => {
						e.preventDefault()
						handleTabChange('upload')
					}}
				>
					{__('Import Snippets', 'code-snippets')}
				</a>
				<a
					className={`nav-tab${activeTab === 'plugins' ? ' nav-tab-active' : ''}`}
					href="#"
					onClick={(e) => {
						e.preventDefault()
						handleTabChange('plugins')
					}}
				>
					{__('Import from other plugins', 'code-snippets')}
				</a>
			</h2>

			<ImportSection active={activeTab === 'upload'}>
				<FileUploadForm />
			</ImportSection>

			<ImportSection active={activeTab === 'plugins'}>
				<ImportForm />
			</ImportSection>
		</div>
	)
}