mirror of
https://github.com/fromchat-messenger/web.git
synced 2026-09-22 19:15:08 +03:00
Move utils to root
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import type { Headers, UploadPublicKeyRequest, BackupBlob } from "../pages/chat/core/types";
|
import type { Headers, UploadPublicKeyRequest, BackupBlob } from "../pages/chat/core/types";
|
||||||
import { generateX25519KeyPair } from "../pages/chat/utils/crypto/asymmetric";
|
import { generateX25519KeyPair } from "../utils/crypto/asymmetric";
|
||||||
import { encodeBlob, encryptBackupWithPassword, decryptBackupWithPassword, decodeBlob } from "../pages/chat/utils/crypto/backup";
|
import { encodeBlob, encryptBackupWithPassword, decryptBackupWithPassword, decodeBlob } from "../utils/crypto/backup";
|
||||||
import { b64, ub64 } from "../pages/chat/utils/utils";
|
import { b64, ub64 } from "../utils/utils";
|
||||||
import { API_BASE_URL } from "../pages/chat/core/config";
|
import { API_BASE_URL } from "../pages/chat/core/config";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { API_BASE_URL } from "../pages/chat/core/config";
|
import { API_BASE_URL } from "../pages/chat/core/config";
|
||||||
import { getAuthHeaders } from "./authApi";
|
import { getAuthHeaders } from "./authApi";
|
||||||
import { ecdhSharedSecret, deriveWrappingKey } from "../pages/chat/utils/crypto/asymmetric";
|
import { ecdhSharedSecret, deriveWrappingKey } from "../utils/crypto/asymmetric";
|
||||||
import { importAesGcmKey, aesGcmEncrypt, aesGcmDecrypt } from "../pages/chat/utils/crypto/symmetric";
|
import { importAesGcmKey, aesGcmEncrypt, aesGcmDecrypt } from "../utils/crypto/symmetric";
|
||||||
import { randomBytes } from "../pages/chat/utils/crypto/kdf";
|
import { randomBytes } from "../utils/crypto/kdf";
|
||||||
import { getCurrentKeys } from "./authApi";
|
import { getCurrentKeys } from "./authApi";
|
||||||
import { request } from "../pages/chat/core/websocket";
|
import { request } from "../pages/chat/core/websocket";
|
||||||
import type { SendDMRequest, DmEnvelope, User, DMEditRequest, DmEncryptedJSON, BaseDmEnvelope } from "../pages/chat/core/types";
|
import type { SendDMRequest, DmEnvelope, User, DMEditRequest, DmEncryptedJSON, BaseDmEnvelope } from "../pages/chat/core/types";
|
||||||
import { b64, ub64 } from "../pages/chat/utils/utils";
|
import { b64, ub64 } from "../utils/utils";
|
||||||
|
|
||||||
export async function decryptDm(envelope: DmEnvelope, senderPublicKeyB64: string): Promise<string> {
|
export async function decryptDm(envelope: DmEnvelope, senderPublicKeyB64: string): Promise<string> {
|
||||||
const keys = getCurrentKeys();
|
const keys = getCurrentKeys();
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
import './css/style.scss';
|
import './css/style.scss';
|
||||||
import "mdui/mdui.css";
|
import "mdui/mdui.css";
|
||||||
|
|
||||||
import "./pages/chat/utils/material";
|
import "./utils/material";
|
||||||
import "./pages/chat/core/init";
|
import "./pages/chat/core/init";
|
||||||
import "./pages/chat/electron/electron";
|
import "./pages/chat/electron/electron";
|
||||||
import { createRoot } from 'react-dom/client';
|
import { createRoot } from 'react-dom/client';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { useRef } from "react";
|
|||||||
import type { TextField } from "mdui/components/text-field";
|
import type { TextField } from "mdui/components/text-field";
|
||||||
import { useAppState } from "../chat/ui/state";
|
import { useAppState } from "../chat/ui/state";
|
||||||
import { MaterialTextField } from "../chat/ui/components/core/TextField";
|
import { MaterialTextField } from "../chat/ui/components/core/TextField";
|
||||||
import { initialize, isSupported, startElectronReceiver, subscribe } from "../chat/utils/push-notifications";
|
import { initialize, isSupported, startElectronReceiver, subscribe } from "../chat/push-notifications";
|
||||||
import { isElectron } from "../chat/electron/electron";
|
import { isElectron } from "../chat/electron/electron";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import "./auth.scss";
|
import "./auth.scss";
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
import { API_WS_BASE_URL } from "./config";
|
import { API_WS_BASE_URL } from "./config";
|
||||||
import type { WebSocketMessage } from "./types";
|
import type { WebSocketMessage } from "./types";
|
||||||
import { delay } from "../utils/utils";
|
import { delay } from "../../../utils/utils";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new WebSocket connection to the chat server
|
* Creates a new WebSocket connection to the chat server
|
||||||
|
|||||||
+4
-4
@@ -1,7 +1,7 @@
|
|||||||
import { API_BASE_URL } from "../core/config";
|
import { API_BASE_URL } from "./core/config";
|
||||||
import { isElectron } from "../electron/electron";
|
import { isElectron } from "./electron/electron";
|
||||||
import { websocket } from "../core/websocket";
|
import { websocket } from "./core/websocket";
|
||||||
import type { NewMessageWebSocketMessage, WebSocketMessage } from "../core/types";
|
import type { NewMessageWebSocketMessage, WebSocketMessage } from "./core/types";
|
||||||
import serviceWorker from "../../../service-worker?worker&url";
|
import serviceWorker from "../../../service-worker?worker&url";
|
||||||
|
|
||||||
export interface PushSubscriptionData {
|
export interface PushSubscriptionData {
|
||||||
@@ -6,7 +6,7 @@ import { UserProfileDialog } from "./UserProfileDialog";
|
|||||||
import { MessageContextMenu, type ContextMenuState } from "./MessageContextMenu";
|
import { MessageContextMenu, type ContextMenuState } from "./MessageContextMenu";
|
||||||
import { fetchUserProfile } from "../../../../../api/profileApi";
|
import { fetchUserProfile } from "../../../../../api/profileApi";
|
||||||
import { useEffect, useState, type ReactNode } from "react";
|
import { useEffect, useState, type ReactNode } from "react";
|
||||||
import { delay } from "../../../utils/utils";
|
import { delay } from "../../../../../utils/utils";
|
||||||
import { MaterialDialog } from "../core/Dialog";
|
import { MaterialDialog } from "../core/Dialog";
|
||||||
import { request } from "../../../core/websocket";
|
import { request } from "../../../core/websocket";
|
||||||
import type { AddReactionRequest, AddDmReactionRequest } from "../../../core/types";
|
import type { AddReactionRequest, AddDmReactionRequest } from "../../../core/types";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { formatTime, id } from "../../../utils/utils";
|
import { formatTime, id } from "../../../../../utils/utils";
|
||||||
import type { Attachment, Message as MessageType } from "../../../core/types";
|
import type { Attachment, Message as MessageType } from "../../../core/types";
|
||||||
import defaultAvatar from "../../../../../images/default-avatar.png";
|
import defaultAvatar from "../../../../../images/default-avatar.png";
|
||||||
import Quote from "../core/Quote";
|
import Quote from "../core/Quote";
|
||||||
@@ -6,11 +6,11 @@ import { parse } from "marked";
|
|||||||
import DOMPurify from "dompurify";
|
import DOMPurify from "dompurify";
|
||||||
import { useEffect, useState, useRef } from "react";
|
import { useEffect, useState, useRef } from "react";
|
||||||
import { getCurrentKeys } from "../../../../../api/authApi";
|
import { getCurrentKeys } from "../../../../../api/authApi";
|
||||||
import { ecdhSharedSecret, deriveWrappingKey } from "../../../utils/crypto/asymmetric";
|
import { ecdhSharedSecret, deriveWrappingKey } from "../../../../../utils/crypto/asymmetric";
|
||||||
import { importAesGcmKey, aesGcmDecrypt } from "../../../utils/crypto/symmetric";
|
import { importAesGcmKey, aesGcmDecrypt } from "../../../../../utils/crypto/symmetric";
|
||||||
import { getAuthHeaders } from "../../../../../api/authApi";
|
import { getAuthHeaders } from "../../../../../api/authApi";
|
||||||
import { useAppState } from "../../state";
|
import { useAppState } from "../../state";
|
||||||
import { ub64 } from "../../../utils/utils";
|
import { ub64 } from "../../../../../utils/utils";
|
||||||
import { useImmer } from "use-immer";
|
import { useImmer } from "use-immer";
|
||||||
import { createPortal } from "react-dom";
|
import { createPortal } from "react-dom";
|
||||||
import { MessageReactions } from "./MessageReactions";
|
import { MessageReactions } from "./MessageReactions";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { DialogProps } from "../../../core/types";
|
import type { DialogProps } from "../../../core/types";
|
||||||
import type { UserProfile } from "../../../core/types";
|
import type { UserProfile } from "../../../core/types";
|
||||||
import { MaterialDialog } from "../core/Dialog";
|
import { MaterialDialog } from "../core/Dialog";
|
||||||
import { formatTime } from "../../../utils/utils";
|
import { formatTime } from "../../../../../utils/utils";
|
||||||
import defaultAvatar from "../../../../../images/default-avatar.png";
|
import defaultAvatar from "../../../../../images/default-avatar.png";
|
||||||
|
|
||||||
interface UserProfileDialogProps extends DialogProps {
|
interface UserProfileDialogProps extends DialogProps {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { Dialog as MduiDialog } from "mdui/components/dialog";
|
import type { Dialog as MduiDialog } from "mdui/components/dialog";
|
||||||
import { useEffect, type Ref } from "react"
|
import { useEffect, type Ref } from "react"
|
||||||
import { createPortal } from "react-dom";
|
import { createPortal } from "react-dom";
|
||||||
import { id } from "../../../utils/utils";
|
import { id } from "../../../../../utils/utils";
|
||||||
import useCombinedRefs from "../../hooks/useCombinedRefs";
|
import useCombinedRefs from "../../hooks/useCombinedRefs";
|
||||||
|
|
||||||
export interface BaseDialogProps {
|
export interface BaseDialogProps {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
|
|||||||
import { PRODUCT_NAME, API_BASE_URL } from "../../../core/config";
|
import { PRODUCT_NAME, API_BASE_URL } from "../../../core/config";
|
||||||
import type { DialogProps } from "../../../core/types";
|
import type { DialogProps } from "../../../core/types";
|
||||||
import { MaterialDialog } from "../core/Dialog";
|
import { MaterialDialog } from "../core/Dialog";
|
||||||
import { initialize, isSupported, startElectronReceiver, stopElectronReceiver, subscribe, unsubscribe } from "../../../utils/push-notifications";
|
import { initialize, isSupported, startElectronReceiver, stopElectronReceiver, subscribe, unsubscribe } from "../../../push-notifications";
|
||||||
import { isElectron } from "../../../electron/electron";
|
import { isElectron } from "../../../electron/electron";
|
||||||
import { useAppState } from "../../state";
|
import { useAppState } from "../../state";
|
||||||
import type { Switch } from "mdui/components/switch";
|
import type { Switch } from "mdui/components/switch";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { useState, useCallback, useEffect } from "react";
|
import { useState, useCallback, useEffect } from "react";
|
||||||
import { useAppState } from "../state";
|
import { useAppState } from "../state";
|
||||||
import { loadProfile, updateProfile, uploadProfilePicture, type ProfileData } from "../../../../api/profileApi";
|
import { loadProfile, updateProfile, uploadProfilePicture, type ProfileData } from "../../../../api/profileApi";
|
||||||
import { showSuccess, showError } from "../../utils/notification";
|
import { showSuccess, showError } from "../../../../utils/notification";
|
||||||
|
|
||||||
export default function useProfile() {
|
export default function useProfile() {
|
||||||
const { user } = useAppState();
|
const { user } = useAppState();
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import type { TextField } from "mdui/components/text-field";
|
|||||||
import { useAppState } from "../state";
|
import { useAppState } from "../state";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { MaterialTextField } from "../components/core/TextField";
|
import { MaterialTextField } from "../components/core/TextField";
|
||||||
import { initialize, isSupported, startElectronReceiver, subscribe } from "../../utils/push-notifications";
|
import { initialize, isSupported, startElectronReceiver, subscribe } from "../../push-notifications";
|
||||||
import { isElectron } from "../../electron/electron";
|
import { isElectron } from "../../electron/electron";
|
||||||
|
|
||||||
export default function LoginScreen() {
|
export default function LoginScreen() {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { DMPanel, type DMPanelData } from "./panels/DMPanel";
|
|||||||
import { getAuthHeaders } from "../../../api/authApi";
|
import { getAuthHeaders } from "../../../api/authApi";
|
||||||
import { restoreKeys } from "../../../api/authApi";
|
import { restoreKeys } from "../../../api/authApi";
|
||||||
import { API_BASE_URL } from "../core/config";
|
import { API_BASE_URL } from "../core/config";
|
||||||
import { initialize, subscribe, startElectronReceiver, isSupported } from "../utils/push-notifications";
|
import { initialize, subscribe, startElectronReceiver, isSupported } from "../push-notifications";
|
||||||
import { isElectron } from "../electron/electron";
|
import { isElectron } from "../electron/electron";
|
||||||
|
|
||||||
export type ChatTabs = "chats" | "channels" | "contacts" | "dms"
|
export type ChatTabs = "chats" | "channels" | "contacts" | "dms"
|
||||||
|
|||||||
Reference in New Issue
Block a user