├── src ├── locales │ ├── en.json │ ├── i18n.ts │ └── zh-CN.json ├── vm │ ├── ProfileViewModel.ts │ ├── converter │ │ ├── UserConfigConverter.ts │ │ └── TreeViewConverter.ts │ ├── modio │ │ ├── EventInfo.ts │ │ ├── UserInfo.ts │ │ └── ModInfo.ts │ ├── config │ │ └── Setting.ts │ └── AppViewModel.ts ├── dialogs │ ├── LoginDialog │ │ └── index.tsx │ ├── AddModDialog │ │ ├── ModioTab.tsx │ │ ├── open.ts │ │ ├── LocalTab.tsx │ │ └── index.tsx │ ├── InputDialog.tsx │ ├── UpdateDialog.tsx │ └── ConfigManageDialog.tsx ├── vite-env.d.ts ├── pages │ ├── SettingPage │ │ ├── Layout.ts │ │ ├── index.tsx │ │ ├── UserSettings.tsx │ │ ├── GameSettings.tsx │ │ └── MintCatSettings.tsx │ ├── ChatPage.tsx │ ├── EmptyPage.tsx │ ├── IBasePage.ts │ └── HomePage │ │ ├── CountLabel.tsx │ │ ├── DragAndDropTree.ts │ │ └── SearchBox.tsx ├── apis │ ├── ConfigApi │ │ ├── DataType.ts │ │ ├── ConfigV3.ts │ │ ├── ConfigV4.ts │ │ └── ConfigV2.ts │ ├── TranslateApi.ts │ ├── ClipboardApi.ts │ ├── LogApi.ts │ ├── DeviceApi.ts │ ├── NetworkApi.ts │ ├── DownloadApi.ts │ ├── CryptApi.ts │ ├── CacheApi.ts │ ├── ConfigApi.ts │ ├── ModUpdateApi.ts │ └── ModioApi.ts ├── utils │ ├── ILock.ts │ ├── ReactUtils.ts │ └── TimeUtils.ts ├── components │ ├── MessageBox.ts │ ├── MenuBar.tsx │ ├── SvgIcon.tsx │ ├── StatusBar.tsx │ └── TitleBar.tsx ├── themes │ └── default.ts ├── main.tsx ├── App.tsx └── App.css ├── src-tauri ├── tests │ ├── tests.rs │ ├── test_zip.rs │ └── test_integrator.rs ├── src │ ├── capability │ │ ├── mod.rs │ │ ├── zip.rs │ │ ├── download.rs │ │ └── steam.rs │ ├── integrator │ │ ├── mod_info.rs │ │ ├── mod.rs │ │ ├── raw_asset.rs │ │ ├── mod_bundle_writer.rs │ │ ├── modio_patch.rs │ │ ├── ue4ss_integrate.rs │ │ └── installation.rs │ ├── main.rs │ └── lib.rs ├── icons │ ├── icon.ico │ └── icon.png ├── assets │ ├── UE4SSL.dll │ ├── dwmapi.dll │ ├── x3daudio1_7.dll │ ├── UE4SSL.CSharp.dll │ ├── UE4SSL.Runtime.dll │ ├── UE4SSL.Framework.dll │ ├── oo2core_9_win64.dll │ ├── integration │ │ └── FSD │ │ │ └── Content │ │ │ └── ModIntegration │ │ │ ├── MI_Mod.uexp │ │ │ ├── MI_UI.uasset │ │ │ ├── MI_UI.uexp │ │ │ ├── MI_Config.uexp │ │ │ ├── MI_Mod.uasset │ │ │ ├── MI_UI_Mod.uexp │ │ │ ├── MI_Config.uasset │ │ │ ├── MI_SaveGame.uexp │ │ │ ├── MI_SpawnMods.uexp │ │ │ ├── MI_UI_Mod.uasset │ │ │ ├── MI_UI_Player.uexp │ │ │ ├── github-mark.uexp │ │ │ ├── MI_SaveGame.uasset │ │ │ ├── MI_SpawnMods.uasset │ │ │ ├── MI_UI_ModList.uexp │ │ │ ├── MI_UI_Player.uasset │ │ │ ├── github-mark.uasset │ │ │ ├── MI_UI_ModList.uasset │ │ │ ├── MI_ReplicatedConfig.uexp │ │ │ ├── MI_ReplicatedConfig.uasset │ │ │ └── RebuiltAssets │ │ │ ├── ITM_Modding_ToolTip_Entry.uexp │ │ │ ├── TOOLTIP_ServerEntry_Mods.uexp │ │ │ ├── ITM_Modding_ToolTip_Entry.uasset │ │ │ └── TOOLTIP_ServerEntry_Mods.uasset │ └── UE4SSL.Runtime.runtimeconfig.json ├── rust-toolchain.toml ├── .gitignore ├── capabilities │ ├── desktop.json │ └── default.json ├── tauri.windows.conf.json ├── build.rs ├── tauri.conf.json └── Cargo.toml ├── public ├── icon.ico └── themes │ ├── light-theme.css │ ├── dark-theme.css │ └── pink-theme.css ├── release.sh ├── tsconfig.node.json ├── index.html ├── .gitignore ├── tsconfig.json ├── latest.json ├── README.md ├── package.json └── vite.config.ts /src/locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /src/vm/ProfileViewModel.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src-tauri/tests/tests.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/dialogs/LoginDialog/index.tsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /public/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/public/icon.ico -------------------------------------------------------------------------------- /public/themes/light-theme.css: -------------------------------------------------------------------------------- 1 | :root { 2 | background-color: #F5F8FF !important; 3 | } 4 | -------------------------------------------------------------------------------- /src-tauri/src/capability/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod steam; 2 | pub mod zip; 3 | pub(crate) mod download; 4 | -------------------------------------------------------------------------------- /src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /src-tauri/assets/UE4SSL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/UE4SSL.dll -------------------------------------------------------------------------------- /src-tauri/assets/dwmapi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/dwmapi.dll -------------------------------------------------------------------------------- /src-tauri/assets/x3daudio1_7.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/x3daudio1_7.dll -------------------------------------------------------------------------------- /src-tauri/assets/UE4SSL.CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/UE4SSL.CSharp.dll -------------------------------------------------------------------------------- /src-tauri/assets/UE4SSL.Runtime.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/UE4SSL.Runtime.dll -------------------------------------------------------------------------------- /src-tauri/assets/UE4SSL.Framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/UE4SSL.Framework.dll -------------------------------------------------------------------------------- /src-tauri/assets/oo2core_9_win64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/oo2core_9_win64.dll -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | export TAURI_SIGNING_PRIVATE_KEY="/Users/bytedance/.tauri/mintcat.key" 2 | pnpm tauri build --runner cargo-xwin --target x86_64-pc-windows-gnu 3 | -------------------------------------------------------------------------------- /src-tauri/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "nightly" 3 | targets = [ 4 | "x86_64-unknown-linux-gnu", 5 | "x86_64-pc-windows-gnu", 6 | ] 7 | -------------------------------------------------------------------------------- /src/vm/converter/UserConfigConverter.ts: -------------------------------------------------------------------------------- 1 | 2 | export class UserConfigConverter { 3 | 4 | 5 | public convertTo() { 6 | 7 | } 8 | 9 | 10 | } 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/vm/modio/EventInfo.ts: -------------------------------------------------------------------------------- 1 | export interface EventInfo { 2 | id: number, 3 | mod_id: number, 4 | user_id: number, 5 | date_added: number, 6 | event_type: string 7 | } -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Mod.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Mod.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Config.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Config.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Mod.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Mod.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Mod.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Mod.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Config.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_Config.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SaveGame.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SaveGame.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SpawnMods.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SpawnMods.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Mod.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Mod.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Player.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Player.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/github-mark.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/github-mark.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SaveGame.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SaveGame.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SpawnMods.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_SpawnMods.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_ModList.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_ModList.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Player.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_Player.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/github-mark.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/github-mark.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_ModList.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_UI_ModList.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_ReplicatedConfig.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_ReplicatedConfig.uexp -------------------------------------------------------------------------------- /src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Generated by Tauri 6 | # will have schema files for capabilities auto-completion 7 | /gen/schemas 8 | -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/MI_ReplicatedConfig.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/MI_ReplicatedConfig.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/ITM_Modding_ToolTip_Entry.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/ITM_Modding_ToolTip_Entry.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/TOOLTIP_ServerEntry_Mods.uexp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/TOOLTIP_ServerEntry_Mods.uexp -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/ITM_Modding_ToolTip_Entry.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/ITM_Modding_ToolTip_Entry.uasset -------------------------------------------------------------------------------- /src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/TOOLTIP_ServerEntry_Mods.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iriscats/mintcat/HEAD/src-tauri/assets/integration/FSD/Content/ModIntegration/RebuiltAssets/TOOLTIP_ServerEntry_Mods.uasset -------------------------------------------------------------------------------- /src/pages/SettingPage/Layout.ts: -------------------------------------------------------------------------------- 1 | export const SettingLayout = { 2 | labelCol: {span: 7}, 3 | wrapperCol: {span: 16}, 4 | style: {maxWidth: 700}, 5 | }; 6 | 7 | export const ButtonLayout = { 8 | style: {width: 468}, 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /src-tauri/src/integrator/mod_info.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Debug, PartialEq, Serialize, Deserialize)] 4 | pub struct ModInfo { 5 | pub modio_id: Option, 6 | pub name: String, 7 | pub pak_path: String, 8 | } 9 | -------------------------------------------------------------------------------- /public/themes/dark-theme.css: -------------------------------------------------------------------------------- 1 | :root { 2 | filter:invert(100%) brightness(0.8) !important; 3 | font-weight: 600; 4 | } 5 | 6 | img { 7 | filter: invert(100%) !important; 8 | } 9 | 10 | .app-title-bar-skin-button { 11 | filter: invert(100%) !important; 12 | } -------------------------------------------------------------------------------- /src-tauri/capabilities/desktop.json: -------------------------------------------------------------------------------- 1 | { 2 | "identifier": "desktop-capability", 3 | "platforms": [ 4 | "macOS", 5 | "windows", 6 | "linux" 7 | ], 8 | "windows": [ 9 | "main" 10 | ], 11 | "permissions": [ 12 | "updater:default" 13 | ] 14 | } -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /src/apis/ConfigApi/DataType.ts: -------------------------------------------------------------------------------- 1 | export interface ConfigDataType { 2 | version: string; 3 | saveTime: string; 4 | path: string; 5 | } 6 | 7 | export interface IConfig { 8 | 9 | checkConfig(): Promise; 10 | 11 | loadConfig(): Promise; 12 | } -------------------------------------------------------------------------------- /src-tauri/src/integrator/mod.rs: -------------------------------------------------------------------------------- 1 | use std::io::{Read, Seek}; 2 | 3 | mod game_pak_patch; 4 | pub(crate) mod installation; 5 | mod mod_bundle_writer; 6 | pub mod mod_info; 7 | mod modio_patch; 8 | pub mod pak_integrator; 9 | mod raw_asset; 10 | mod ue4ss_integrate; 11 | 12 | pub trait ReadSeek: Read + Seek + Send {} 13 | 14 | impl ReadSeek for T {} 15 | -------------------------------------------------------------------------------- /src/utils/ILock.ts: -------------------------------------------------------------------------------- 1 | 2 | export abstract class ILock { 3 | 4 | protected static lock: Promise = Promise.resolve(); 5 | 6 | protected static async acquireLock() { 7 | let release = () => {}; 8 | const oldLock = this.lock; 9 | this.lock = new Promise(resolve => release = resolve); 10 | await oldLock; 11 | return release; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /src-tauri/assets/UE4SSL.Runtime.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "net9.0", 4 | "rollForward": "LatestMinor", 5 | "framework": { 6 | "name": "Microsoft.NETCore.App", 7 | "version": "9.0.0" 8 | }, 9 | "configProperties": { 10 | "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /public/themes/pink-theme.css: -------------------------------------------------------------------------------- 1 | :root { 2 | /* --ant-primary-color: #ff69b4 !important;*/ 3 | background-color: rgba(237, 65, 146, 0.2) !important; 4 | } 5 | 6 | body::before { 7 | background-image: url("https://www.loliapi.com/acg/pc/") !important; 8 | } 9 | 10 | .app-header .ant-btn-primary:not([disabled]):not(.ant-btn-dangerous)::before { 11 | background: linear-gradient(135deg, #d58cfa, #ff5959) !important; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src-tauri/tests/test_zip.rs: -------------------------------------------------------------------------------- 1 | use mintcat_lib::capability::zip::read_files_from_zip_by_extension; 2 | 3 | #[test] 4 | fn test_read_files_from_zip_by_extension() { 5 | // 测试 zip 文件路径 6 | let zip_path = "/Users/Desktop/data/test.zip"; 7 | 8 | // 测试要查找的扩展名 9 | let extension = "pak"; 10 | 11 | // 调用函数并断言结果非空 12 | let file_paths = read_files_from_zip_by_extension(zip_path, extension); 13 | assert!(!file_paths.is_ok()); 14 | } 15 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | MintCat 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /hook/target 3 | /.idea 4 | /result 5 | .DS_Store 6 | Cargo.lock 7 | pnpm-lock.yaml 8 | 9 | # Logs 10 | logs 11 | *.log 12 | npm-debug.log* 13 | yarn-debug.log* 14 | yarn-error.log* 15 | pnpm-debug.log* 16 | lerna-debug.log* 17 | 18 | node_modules 19 | dist 20 | dist-ssr 21 | *.local 22 | 23 | # Editor directories and files 24 | .vscode/* 25 | !.vscode/extensions.json 26 | .idea 27 | .DS_Store 28 | *.suo 29 | *.ntvs* 30 | *.njsproj 31 | *.sln 32 | *.sw? 33 | -------------------------------------------------------------------------------- /src/vm/modio/UserInfo.ts: -------------------------------------------------------------------------------- 1 | export interface UserInfo { 2 | id: number; 3 | name_id: string; 4 | username: string; 5 | display_name_portal?: any; 6 | date_online: number; 7 | date_joined: number; 8 | avatar: Avatar; 9 | timezone?: any; 10 | language?: any; 11 | profile_url: string; 12 | } 13 | 14 | export interface Avatar { 15 | filename: string; 16 | original: string; 17 | thumb_50x50: string; 18 | thumb_100x100: string; 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/ChatPage.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | 4 | const ChatPage = () => { 5 | return ( 6 |
11 |