Fix some code
This commit is contained in:
parent
2c329aa8a2
commit
1e6065ec7c
82
README.md
82
README.md
@ -1,54 +1,50 @@
|
|||||||
# React + TypeScript + Vite
|
# Application [4NK] - Interface Web
|
||||||
|
|
||||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
Cette application React fournit une interface pour interagir avec la plateforme [4NK]. Elle permet l'authentification des utilisateurs, la création de profils et de dossiers, ainsi que la visualisation des processus.
|
||||||
|
|
||||||
Currently, two official plugins are available:
|
## Fonctionnalités principales
|
||||||
|
|
||||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
|
- Authentification utilisateur via OAuth
|
||||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
- Création et gestion de profils utilisateur
|
||||||
|
- Création et gestion de dossiers
|
||||||
|
- Visualisation des processus
|
||||||
|
- Console de messages pour le suivi des événements
|
||||||
|
|
||||||
## Expanding the ESLint configuration
|
## Prérequis
|
||||||
|
|
||||||
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
|
- Node.js (version 18 ou supérieure)
|
||||||
|
- npm ou yarn
|
||||||
|
|
||||||
```js
|
## Installation
|
||||||
export default tseslint.config({
|
|
||||||
extends: [
|
Pour installer les dépendances du projet, exécutez :
|
||||||
// Remove ...tseslint.configs.recommended and replace with this
|
|
||||||
...tseslint.configs.recommendedTypeChecked,
|
```bash
|
||||||
// Alternatively, use this for stricter rules
|
npm install
|
||||||
...tseslint.configs.strictTypeChecked,
|
|
||||||
// Optionally, add this for stylistic rules
|
|
||||||
...tseslint.configs.stylisticTypeChecked,
|
|
||||||
],
|
|
||||||
languageOptions: {
|
|
||||||
// other options...
|
|
||||||
parserOptions: {
|
|
||||||
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
|
||||||
tsconfigRootDir: import.meta.dirname,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
|
## Commandes disponibles
|
||||||
|
|
||||||
```js
|
### Démarrage de l'application
|
||||||
// eslint.config.js
|
|
||||||
import reactX from 'eslint-plugin-react-x'
|
|
||||||
import reactDom from 'eslint-plugin-react-dom'
|
|
||||||
|
|
||||||
export default tseslint.config({
|
**Commande principale** pour lancer l'application en mode développement :
|
||||||
plugins: {
|
|
||||||
// Add the react-x and react-dom plugins
|
```bash
|
||||||
'react-x': reactX,
|
npm run dev
|
||||||
'react-dom': reactDom,
|
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
// other rules...
|
|
||||||
// Enable its recommended typescript rules
|
|
||||||
...reactX.configs['recommended-typescript'].rules,
|
|
||||||
...reactDom.configs.recommended.rules,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
L'application sera accessible à l'adresse : http://localhost:5173
|
||||||
|
|
||||||
|
## Communication avec la plateforme [4NK]
|
||||||
|
|
||||||
|
L'application communique avec la plateforme [4NK] via une iframe et un bus de messages. La communication est gérée par les classes `MessageBus` et `EventBus` dans le dossier `/src/sdk`.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
L'URL de l'iframe est définie dans `App.tsx` :
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
const iframeUrl = 'https://dev3.4nkweb.com'
|
||||||
|
```
|
||||||
|
|
||||||
|
Pour modifier l'environnement cible, vous devez changer cette URL.
|
||||||
|
@ -147,6 +147,7 @@ function App() {
|
|||||||
onLogout={handleLogout}
|
onLogout={handleLogout}
|
||||||
onCreateProfile={handleOpenProfileModal}
|
onCreateProfile={handleOpenProfileModal}
|
||||||
onCreateFolder={handleOpenFolderModal}
|
onCreateFolder={handleOpenFolderModal}
|
||||||
|
iframeUrl={iframeUrl}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* Structure flexible avec console à gauche et contenu à droite */}
|
{/* Structure flexible avec console à gauche et contenu à droite */}
|
||||||
|
@ -9,20 +9,14 @@ interface ControlPanelProps {
|
|||||||
iframeUrl?: string;
|
iframeUrl?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Composant de panel de contrôle pour gérer les actions principales
|
|
||||||
*
|
|
||||||
* Fournit des boutons pour la connexion, la création de profil et le contrôle de visibilité
|
|
||||||
*/
|
|
||||||
function ControlPanel({
|
function ControlPanel({
|
||||||
onLogin = () => console.log('Connexion demandée'),
|
onLogin = () => console.log('Connexion demandée'),
|
||||||
onLogout = () => console.log('Déconnexion demandée'),
|
onLogout = () => console.log('Déconnexion demandée'),
|
||||||
onCreateProfile = () => console.log('Création de profil demandée'),
|
onCreateProfile = () => console.log('Création de profil demandée'),
|
||||||
onCreateFolder = () => console.log('Création de dossier demandée'),
|
onCreateFolder = () => console.log('Création de dossier demandée'),
|
||||||
isConnected = false,
|
isConnected = false,
|
||||||
iframeUrl = 'https://dev1.4nkweb.com'
|
iframeUrl = ''
|
||||||
}: ControlPanelProps) {
|
}: ControlPanelProps) {
|
||||||
// État pour gérer l'affichage du tooltip
|
|
||||||
const [showTooltip, setShowTooltip] = useState(false);
|
const [showTooltip, setShowTooltip] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -264,6 +264,7 @@
|
|||||||
0% {
|
0% {
|
||||||
box-shadow: 0 0 0 2px rgba(103, 58, 183, 0.8);
|
box-shadow: 0 0 0 2px rgba(103, 58, 183, 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
@ -284,11 +285,8 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-cancel, .btn-submit {
|
.btn-cancel,
|
||||||
|
.btn-submit {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Styles spécifiques pour le composant FolderModal */
|
|
||||||
/* Les styles génériques de modal sont fournis par Modal.css */
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user