This commit is contained in:
2024-05-14 11:39:33 +03:00
commit 2762ac794a
26 changed files with 1506 additions and 0 deletions

50
FRONTEND/STORE/UI.TS.md Normal file
View File

@@ -0,0 +1,50 @@
**Импорт функции defineStore из библиотеки pinia для создания хранилища**:
```
import { defineStore } from 'pinia';
```
**Определение типа данных ConfirmationModalDataType**:
```
type ConfirmationModalDataType = {
text: string,
action: () => any
};
```
Здесь определяется тип данных `ConfirmationModalDataType`, который содержит текст модального окна и функцию действия при подтверждении.
**Определение типа состояния для хранилища ui**:
```
type uiState = {
confirmationModalStatus: boolean;
confirmationModalData: ConfirmationModalDataType | undefined;
};
```
В этом блоке определяется тип состояния `uiState` для хранилища. `confirmationModalStatus` указывает на состояние модального окна (открыто или закрыто), а `confirmationModalData` содержит данные для модального окна подтверждения.
**Начальное состояние хранилища**:
```
const defaultState: uiState = {
confirmationModalStatus: false,
confirmationModalData: undefined,
};
```
Здесь устанавливается начальное состояние хранилища `uiStore`, в котором модальное окно подтверждения изначально закрыто и данные для него не определены.
**Экспорт хранилища uiStore с использованием defineStore**:
```
export const uiStore = defineStore({
id: 'ui',
state: () => defaultState,
actions: {
openConfirmationModal(text: string, action: () => any) {
this.confirmationModalData = { text, action };
this.confirmationModalStatus = true;
},
closeConfirmationModal() {
this.confirmationModalData = undefined;
this.confirmationModalStatus = false;
},
},
persist: true,
});
```
Здесь мы используем `defineStore` для создания хранилища `uiStore` с определенным состоянием (`state`), действиями (`actions`) для открытия и закрытия модального окна подтверждения, а также флагом `persist: true`, чтобы сохранять состояние хранилища между перезагрузками страницы.