From 78ab5bf1a9ef6d4eff7b94748d1ebe0709b88fc2 Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 27 Apr 2026 08:23:10 +0900 Subject: [PATCH] chore: remove Granite/Toss config and entry files --- babel.config.js | 11 -------- global.d.ts | 15 ----------- granite.config.ts | 17 ------------ pages/index.tsx | 67 ---------------------------------------------- require.context.ts | 9 ------- src/_app.tsx | 20 -------------- 6 files changed, 139 deletions(-) delete mode 100644 babel.config.js delete mode 100644 global.d.ts delete mode 100644 granite.config.ts delete mode 100644 pages/index.tsx delete mode 100644 require.context.ts delete mode 100644 src/_app.tsx diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 99a8ac0..0000000 --- a/babel.config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - presets: ['module:metro-react-native-babel-preset'], - overrides: [ - { - // react-native 0.84+ uses TypeScript 'as' syntax in .js files - // which the default preset doesn't handle for non-.ts files - test: /node_modules\/react-native\/.*\.js$/, - plugins: [['@babel/plugin-transform-typescript', { allowDeclareFields: true }]], - }, - ], -}; diff --git a/global.d.ts b/global.d.ts deleted file mode 100644 index c3e34d8..0000000 --- a/global.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -interface RequireContext { - keys(): string[]; - (id: string): any; - (id: string): T; - resolve(id: string): string; - id: string; -} - -interface NodeRequire { - context(directory: string, useSubdirectories?: boolean, regExp?: RegExp): RequireContext; -} - -interface Require { - context(directory: string, useSubdirectories?: boolean, regExp?: RegExp): RequireContext; -} diff --git a/granite.config.ts b/granite.config.ts deleted file mode 100644 index e3147df..0000000 --- a/granite.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { appsInToss } from '@apps-in-toss/framework/plugins'; -import { defineConfig } from '@granite-js/react-native/config'; - -export default defineConfig({ - scheme: 'intoss', - appName: 'archetype-firstspark', - plugins: [ - appsInToss({ - brand: { - displayName: '아키타입: 첫 번째 불꽃', - primaryColor: '#FF6B35', - icon: './app-icon.png', - }, - permissions: [], - }), - ], -}); diff --git a/pages/index.tsx b/pages/index.tsx deleted file mode 100644 index d5dead1..0000000 --- a/pages/index.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { css } from '@emotion/react'; -import { useEffect } from 'react'; -import { BottomTabBar } from '../src/components/BottomTabBar'; -import { OfflineRewardModal } from '../src/components/OfflineRewardModal'; -import { AchievementToast } from '../src/components/AchievementToast'; -import { ElementsScreen } from '../src/components/screens/ElementsScreen'; -import { EvolutionScreen } from '../src/components/screens/EvolutionScreen'; -import { FusionScreen } from '../src/components/screens/FusionScreen'; -import { ShopScreen } from '../src/components/screens/ShopScreen'; -import { AchievementsScreen } from '../src/components/screens/AchievementsScreen'; -import { SettingsScreen } from '../src/components/screens/SettingsScreen'; -import { useIdleTick } from '../src/hooks/useIdleTick'; -import { useGameStore } from '../src/store/useGameStore'; -import { trackGameEvent } from '../src/analytics'; - -const rootStyle = css` - width: 100%; - height: 100vh; - display: flex; - flex-direction: column; - background-color: #f7f8fa; - overflow: hidden; - font-family: - 'Pretendard', - -apple-system, - BlinkMacSystemFont, - sans-serif; -`; - -const contentStyle = css` - flex: 1; - overflow-y: auto; - padding-bottom: 72px; -`; - -export default function IndexPage() { - const { activeTab, setActiveTab, elements, gold, elementLevels } = useGameStore(); - useIdleTick(); - - useEffect(() => { - const ownedCount = Object.values(elements).filter((c) => c > 0).length; - const totalLevel = Object.values(elementLevels).reduce((sum, lv) => sum + lv, 0); - trackGameEvent('app_open', { - platform: 'web', - platform_time: new Date().toISOString(), - owned_element_count: ownedCount, - gold, - total_enhance_level: totalLevel, - }); - }, []); - - return ( -
- - -
- {activeTab === 'elements' && } - {activeTab === 'evolution' && } - {activeTab === 'fusion' && } - {activeTab === 'shop' && } - {activeTab === 'achievements' && } - {activeTab === 'settings' && } -
- -
- ); -} diff --git a/require.context.ts b/require.context.ts deleted file mode 100644 index cab7670..0000000 --- a/require.context.ts +++ /dev/null @@ -1,9 +0,0 @@ -interface GraniteRequireContext { - keys(): string[]; - (id: string): any; - (id: string): T; - resolve(id: string): string; - id: string; -} - -export const context = require.context('./pages', false, /\.(tsx|ts)$/) as unknown as GraniteRequireContext; diff --git a/src/_app.tsx b/src/_app.tsx deleted file mode 100644 index c3a3d55..0000000 --- a/src/_app.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { AppsInToss } from '@apps-in-toss/framework'; -import { TDSMobileAITProvider } from '@toss/tds-mobile-ait'; -import { PropsWithChildren } from 'react'; -import { InitialProps } from '@granite-js/react-native'; -import { context } from '../require.context'; -import { initAnalytics } from './analytics'; -import { TutorialOverlay } from './components/tutorial/TutorialOverlay'; - -initAnalytics(process.env.NODE_ENV !== 'production'); - -function AppContainer({ children }: PropsWithChildren) { - return ( - - {children} - - - ); -} - -export default AppsInToss.registerApp(AppContainer, { context });