| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- @echo off
- setlocal EnableDelayedExpansion
- rem ensure we run from script directory
- cd /d "%~dp0"
- set /p PAGE_NAME="Enter Page Name: "
- for /f "tokens=* delims= " %%i in ("%PAGE_NAME%") do set "PAGE_NAME=%%i"
- if "%PAGE_NAME%"=="" exit /b
- echo ========================================
- echo Create New Page
- echo ========================================
- echo 1. Create Page With Folder
- echo 2. Create Page
- echo ========================================
- set /p MODE="Select mode (1 or 2) [Default: 1]: "
- for /f "tokens=* delims= " %%i in ("%MODE%") do set "MODE=%%i"
- if "%MODE%"=="" set "MODE=1"
- if not "%MODE%"=="1" if not "%MODE%"=="2" (
- echo Invalid selection!
- pause
- exit /b
- )
- if "%MODE%"=="1" (
- set "PAGES_DIR=src\pages"
- set "PAGE_FOLDER=src\pages\%PAGE_NAME%"
- set "JSX_FILE=src\pages\%PAGE_NAME%\%PAGE_NAME%.jsx"
- set "JS_FILE=src\pages\%PAGE_NAME%\%PAGE_NAME%.js"
- set "CSS_FILE=src\pages\%PAGE_NAME%\%PAGE_NAME%.css"
- ) else (
- set "PAGES_DIR=src\pages"
- set "PAGE_FOLDER="
- set "JSX_FILE=src\pages\%PAGE_NAME%.jsx"
- set "JS_FILE=src\pages\%PAGE_NAME%.js"
- set "CSS_FILE=src\pages\%PAGE_NAME%.css"
- )
- if "%MODE%"=="1" (
- if exist "%PAGE_FOLDER%" (
- echo Page %PAGE_NAME% already exists!
- pause
- exit /b
- )
- ) else (
- if exist "%JSX_FILE%" (
- echo Page %PAGE_NAME% already exists!
- pause
- exit /b
- )
- )
- if not exist "%PAGES_DIR%" mkdir "%PAGES_DIR%"
- if "%MODE%"=="1" if not exist "%PAGE_FOLDER%" mkdir "%PAGE_FOLDER%"
- (
- echo import './%PAGE_NAME%.css';
- echo import { %PAGE_NAME%Logic } from './%PAGE_NAME%.js';
- echo.
- echo function %PAGE_NAME%^(^) {
- echo const logic = %PAGE_NAME%Logic^(^);
- echo.
- echo return ^(
- echo ^<div className="%PAGE_NAME%-container"^>
- echo ^<h1^>%PAGE_NAME%^</h1^>
- echo ^</div^>
- echo ^);
- echo }
- echo.
- echo export default %PAGE_NAME%;
- ) > "%JSX_FILE%"
- (
- echo export function %PAGE_NAME%Logic^(^) {
- echo // business logic placeholder
- echo.
- echo return {
- echo // expose data or methods here
- echo };
- echo }
- ) > "%JS_FILE%"
- (
- echo .%PAGE_NAME%-container {
- echo padding: 20px;
- echo }
- ) > "%CSS_FILE%"
- echo Created: %JSX_FILE%
- echo Created: %JS_FILE%
- echo Created: %CSS_FILE%
- set "APP_FILE=src\App.jsx"
- if exist "%APP_FILE%" (
- call :AddToApp "%MODE%" "%PAGE_NAME%" "%APP_FILE%"
- echo Added %PAGE_NAME% to App.jsx
- ) else (
- echo Warning: App.jsx not found, skipping...
- )
- echo.
- echo ========================================
- echo Page %PAGE_NAME% created successfully!
- echo ========================================
- echo.
- echo Summary:
- if "%MODE%"=="1" (
- echo 1. Created folder: %PAGE_FOLDER%
- echo 2. Created files:
- echo - %JSX_FILE%
- echo - %JS_FILE%
- echo - %CSS_FILE%
- echo 3. Modified file: src\App.jsx
- echo - Added import: import %PAGE_NAME% from './pages/%PAGE_NAME%/%PAGE_NAME%';
- echo - Added component: ^<%PAGE_NAME% /^>
- ) else (
- echo 1. Created files in src\pages directory:
- echo - %JSX_FILE%
- echo - %JS_FILE%
- echo - %CSS_FILE%
- echo 2. Modified file: src\App.jsx
- echo - Added import: import %PAGE_NAME% from './pages/%PAGE_NAME%';
- echo - Added component: ^<%PAGE_NAME% /^>
- )
- pause
- exit /b
- :AddToApp
- setlocal EnableDelayedExpansion
- set "MODE_VAL=%~1"
- set "PAGE_VAL=%~2"
- set "APP_PATH=%~3"
- if not exist "%APP_PATH%" (
- echo ERROR: File not found: %APP_PATH%
- exit /b 1
- )
- if "%MODE_VAL%"=="1" (
- set "IMPORT_LINE=import %PAGE_VAL% from './pages/%PAGE_VAL%/%PAGE_VAL%';"
- ) else (
- set "IMPORT_LINE=import %PAGE_VAL% from './pages/%PAGE_VAL%';"
- )
- set "NEED_IMPORT=1"
- set "NEED_COMPONENT=1"
- set "TEMP_FILE=%TEMP%\app_temp_%RANDOM%.jsx"
- if exist "%TEMP_FILE%" del "%TEMP_FILE%"
- for /f "usebackq delims=" %%a in ("%APP_PATH%") do (
- set "line=%%a"
- set "isImport=0"
- set "isDiv=0"
- if /i "!line:~0,7!"=="import " set "isImport=1"
- if not "!line:</div>=!"=="!line!" set "isDiv=1"
- >>"%TEMP_FILE%" echo(!line!
- if !isImport! equ 1 if !NEED_IMPORT! equ 1 (
- >>"%TEMP_FILE%" echo !IMPORT_LINE!
- set "NEED_IMPORT=0"
- )
- if !isDiv! equ 1 if !NEED_COMPONENT! equ 1 (
- >>"%TEMP_FILE%" echo ^<%PAGE_VAL% /^>
- set "NEED_COMPONENT=0"
- )
- )
- if !NEED_IMPORT! equ 1 >>"%TEMP_FILE%" echo !IMPORT_LINE!
- if !NEED_COMPONENT! equ 1 >>"%TEMP_FILE%" echo ^<%PAGE_VAL% /^>
- move /y "%TEMP_FILE%" "%APP_PATH%" >nul
- endlocal
- exit /b
|