1
0

Migrate from Vue2 to React with modern tech stack

- Replace Vue2 + Vue CLI with Vite + React 18 + TypeScript
- Add Tailwind CSS for efficient styling
- Implement clean component architecture:
  - Split 1000+ line Vue component into focused React components
  - Add proper type safety with TypeScript
  - Use React Query for efficient data fetching
- Update GitHub Actions for React build pipeline
- Maintain existing functionality and design
- Support Node.js 23 with .nvmrc

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-18 13:44:54 +09:00
parent 980e9c1259
commit e7f39a1894
23 changed files with 1064 additions and 22 deletions

56
src/types/index.ts Normal file
View File

@@ -0,0 +1,56 @@
export interface User {
id: number;
username: string;
did: string;
aiten: number;
handle: string;
delete?: boolean;
created_at: string;
planet?: number;
model?: boolean;
bsky?: boolean;
fav?: string;
game?: boolean;
game_lv?: number;
model_attack?: number;
model_critical?: number;
model_critical_d?: number;
room?: boolean;
login?: boolean;
game_exp?: number;
}
export interface Card {
id: number;
card: number;
cp: number;
status: 'normal' | 'yui' | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seven';
skill: 'critical' | 'post' | 'luck' | 'ten' | 'lost' | 'dragon' | 'nyan' | 'yui' | '3d' | 'model' | 'first';
author?: string;
url?: string;
}
export interface CardOwner {
id: number;
h: string;
owner: string | null;
ten?: number;
ten_skill?: boolean;
first_skill?: boolean;
}
export interface Fanart {
img: string;
link: string;
author: string;
delete?: boolean;
}
export interface Seven {
card: number;
count: number;
handle: string;
cp: number;
}
export type LocationPath = 'di' | 'docs' | 'en' | 'vr' | 'te' | 'c' | 'svn' | 'fa' | 'ph' | 'pr' | 'owner' | string;