mirror of
https://github.com/fromchat-messenger/web.git
synced 2026-09-22 19:15:08 +03:00
Set up React
This commit is contained in:
+7
-12
@@ -7,18 +7,17 @@
|
|||||||
<link rel="icon" href="./src/resources/images/logo.png" />
|
<link rel="icon" href="./src/resources/images/logo.png" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="electron-title-bar">
|
<!-- <div id="electron-title-bar">
|
||||||
<div class="macos-padding"></div>
|
<div class="macos-padding"></div>
|
||||||
<div id="window-title"></div>
|
<div id="window-title"></div>
|
||||||
<!-- <div class="window-controls">
|
<div class="window-controls">
|
||||||
<mdui-button-icon icon="remove" id="window-minimize"></mdui-button-icon>
|
<mdui-button-icon icon="remove" id="window-minimize"></mdui-button-icon>
|
||||||
<mdui-button-icon icon="stack--outlined" id="window-restore" class="hidden"></mdui-button-icon>
|
<mdui-button-icon icon="stack--outlined" id="window-restore" class="hidden"></mdui-button-icon>
|
||||||
<mdui-button-icon icon="ad--outlined" id="window-maximize"></mdui-button-icon>
|
<mdui-button-icon icon="ad--outlined" id="window-maximize"></mdui-button-icon>
|
||||||
<mdui-button-icon icon="close" id="window-close"></mdui-button-icon>
|
<mdui-button-icon icon="close" id="window-close"></mdui-button-icon>
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="main-wrapper">
|
<div id="main-wrapper">
|
||||||
<!-- Login Form -->
|
|
||||||
<div id="login-form" class="auth-container">
|
<div id="login-form" class="auth-container">
|
||||||
<div class="auth-card fade-in">
|
<div class="auth-card fade-in">
|
||||||
<div class="auth-header">
|
<div class="auth-header">
|
||||||
@@ -62,8 +61,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Register Form -->
|
|
||||||
<div id="register-form" class="auth-container" style="display: none;">
|
<div id="register-form" class="auth-container" style="display: none;">
|
||||||
<div class="auth-card fade-in">
|
<div class="auth-card fade-in">
|
||||||
<div class="auth-header">
|
<div class="auth-header">
|
||||||
@@ -123,8 +120,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Chat Interface -->
|
|
||||||
<div id="chat-interface" style="display: none;">
|
<div id="chat-interface" style="display: none;">
|
||||||
<div class="all-container">
|
<div class="all-container">
|
||||||
<div class="chat-list" id="chat-list">
|
<div class="chat-list" id="chat-list">
|
||||||
@@ -192,7 +187,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="chat-messages" id="chat-messages">
|
<div class="chat-messages" id="chat-messages">
|
||||||
<!-- Messages will be loaded here dynamically -->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="chat-input-wrapper">
|
<div class="chat-input-wrapper">
|
||||||
@@ -239,7 +233,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</mdui-dialog>
|
</mdui-dialog>
|
||||||
|
|
||||||
<!-- Profile Picture Cropper Dialog -->
|
|
||||||
<mdui-dialog id="cropper-dialog" close-on-overlay-click close-on-esc>
|
<mdui-dialog id="cropper-dialog" close-on-overlay-click close-on-esc>
|
||||||
<div class="cropper-dialog-content">
|
<div class="cropper-dialog-content">
|
||||||
<div class="cropper-header">
|
<div class="cropper-header">
|
||||||
@@ -425,8 +418,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</mdui-dialog>
|
</mdui-dialog> -->
|
||||||
|
|
||||||
<script src="src/main.ts" type="module"></script>
|
<div id="root"></div>
|
||||||
|
|
||||||
|
<script src="src/main.tsx" type="module"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
/**
|
|
||||||
* @fileoverview Application entry point for FromChat frontend
|
|
||||||
* @description Main module that initializes all required components and styles
|
|
||||||
* @author Cursor
|
|
||||||
* @version 1.0.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import './resources/css/style.scss';
|
|
||||||
import "mdui/mdui.css";
|
|
||||||
|
|
||||||
import "./utils/material";
|
|
||||||
import "./chat/chat";
|
|
||||||
import "./userPanel/settings";
|
|
||||||
import "./userPanel/userpanel";
|
|
||||||
import "./core/init";
|
|
||||||
import "./userPanel/profile/profile";
|
|
||||||
import "./chat/contextMenu";
|
|
||||||
import "./chat/profileDialog";
|
|
||||||
import "./electron/electron";
|
|
||||||
import "./chat/panel";
|
|
||||||
import "./chat/dm";
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* @fileoverview Application entry point for FromChat frontend
|
||||||
|
* @description Main module that initializes all required components and styles
|
||||||
|
* @author Cursor
|
||||||
|
* @version 1.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
import './resources/css/style.scss';
|
||||||
|
import "mdui/mdui.css";
|
||||||
|
|
||||||
|
import "./utils/material";
|
||||||
|
// import "./chat/chat";
|
||||||
|
// import "./userPanel/settings";
|
||||||
|
// import "./userPanel/userpanel";
|
||||||
|
// import "./core/init";
|
||||||
|
// import "./userPanel/profile/profile";
|
||||||
|
// import "./chat/contextMenu";
|
||||||
|
// import "./chat/profileDialog";
|
||||||
|
// import "./electron/electron";
|
||||||
|
// import "./chat/panel";
|
||||||
|
// import "./chat/dm";
|
||||||
|
import { createRoot } from 'react-dom/client';
|
||||||
|
import App from './ui/App';
|
||||||
|
|
||||||
|
// Initialize React app
|
||||||
|
createRoot(document.getElementById("root")!).render(<App />);
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
export default function App() {
|
||||||
|
return <></>
|
||||||
|
}
|
||||||
@@ -17,7 +17,11 @@
|
|||||||
"strict": true,
|
"strict": true,
|
||||||
"erasableSyntaxOnly": true,
|
"erasableSyntaxOnly": true,
|
||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"noUncheckedSideEffectImports": true
|
"noUncheckedSideEffectImports": true,
|
||||||
|
|
||||||
|
/* React JSX Support */
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"jsxImportSource": "react"
|
||||||
},
|
},
|
||||||
"include": ["src", "electron.d.ts"]
|
"include": ["src", "electron.d.ts"]
|
||||||
}
|
}
|
||||||
+2
-25
@@ -2,33 +2,10 @@ import { defineConfig, PluginOption } from "vite";
|
|||||||
import { createHtmlPlugin } from "vite-plugin-html";
|
import { createHtmlPlugin } from "vite-plugin-html";
|
||||||
import autoprefixer from "autoprefixer";
|
import autoprefixer from "autoprefixer";
|
||||||
import electron from "vite-plugin-electron/simple";
|
import electron from "vite-plugin-electron/simple";
|
||||||
|
import react from "@vitejs/plugin-react";
|
||||||
function hmrAutoAcceptPlugin(): PluginOption {
|
|
||||||
const injectionLine = "if(import.meta.hot){import.meta.hot.accept()}";
|
|
||||||
const fileRegex = /\.(m?jsx?|tsx?)$/;
|
|
||||||
|
|
||||||
return {
|
|
||||||
name: "hmr-auto-accept",
|
|
||||||
apply: "serve",
|
|
||||||
enforce: "post",
|
|
||||||
transform(code, id) {
|
|
||||||
if (!fileRegex.test(id)) return null;
|
|
||||||
if (id.endsWith(".d.ts")) return null;
|
|
||||||
if (id.includes("node_modules")) return null;
|
|
||||||
if (id.startsWith("\0") || id.includes("virtual:") || id.includes("/@vite/")) return null;
|
|
||||||
if (code.includes("import.meta.hot.accept()")) return null;
|
|
||||||
|
|
||||||
if (!code.endsWith("\n")) {
|
|
||||||
code += "\n";
|
|
||||||
}
|
|
||||||
code += injectionLine;
|
|
||||||
return { code: code, map: null };
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
const plugins: PluginOption[] = [
|
const plugins: PluginOption[] = [
|
||||||
hmrAutoAcceptPlugin(),
|
react(),
|
||||||
createHtmlPlugin({
|
createHtmlPlugin({
|
||||||
minify: {
|
minify: {
|
||||||
collapseWhitespace: true,
|
collapseWhitespace: true,
|
||||||
|
|||||||
+7
-2
@@ -41,10 +41,15 @@
|
|||||||
"vite": "^7.1.2",
|
"vite": "^7.1.2",
|
||||||
"vite-plugin-electron": "^0.29.0",
|
"vite-plugin-electron": "^0.29.0",
|
||||||
"vite-plugin-electron-renderer": "^0.14.6",
|
"vite-plugin-electron-renderer": "^0.14.6",
|
||||||
"vite-plugin-html": "^3.2.2"
|
"vite-plugin-html": "^3.2.2",
|
||||||
|
"@vitejs/plugin-react": "^5.0.2",
|
||||||
|
"@types/react": "^19.1.12",
|
||||||
|
"@types/react-dom": "^19.1.9"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mdui": "^2.1.4",
|
"mdui": "^2.1.4",
|
||||||
"tweetnacl": "^1.0.3"
|
"tweetnacl": "^1.0.3",
|
||||||
|
"react": "^19.1.1",
|
||||||
|
"react-dom": "^19.1.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user