Separate common interfaces from client-specific classes
Changes:
- Move client-specific classes to client/src/models
- Extract common interface to standalone files in common/interfaces
- Remove unused features from client-specific classes
- These are features which were once used on the old server, but are now no longer needed
- Remove getObject() method for Account, Contact, and Conversation
- Remove lookups, registrationState and registeringName from Account
- Remove resolving logic from Contact
- Remove requests and listeners from Conversation (once used for Socket.IO and promises on server)
- Rename services/Conversation.ts to services/conversationQueries.ts
- Update imports
Future work:
- Create interface versions of Account, Contact, and Conversation
- Create new interfaces to replace Records on server
GitLab: #94
Change-Id: Ia51fe6ebeda44a30887d851a5564569dc290e5ed
diff --git a/client/src/contexts/AuthProvider.tsx b/client/src/contexts/AuthProvider.tsx
index ced9a85..06bf1bb 100644
--- a/client/src/contexts/AuthProvider.tsx
+++ b/client/src/contexts/AuthProvider.tsx
@@ -16,12 +16,12 @@
* <https://www.gnu.org/licenses/>.
*/
import axios, { AxiosInstance } from 'axios';
-import { Account } from 'jami-web-common/dist/Account';
-import { HttpStatusCode } from 'jami-web-common/dist/enums/http-status-code';
+import { HttpStatusCode } from 'jami-web-common';
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import ProcessingRequest from '../components/ProcessingRequest';
+import { Account } from '../models/Account';
import { apiUrl } from '../utils/constants';
import { WithChildren } from '../utils/utils';
diff --git a/client/src/contexts/ConversationProvider.tsx b/client/src/contexts/ConversationProvider.tsx
index 7d09881..25137c0 100644
--- a/client/src/contexts/ConversationProvider.tsx
+++ b/client/src/contexts/ConversationProvider.tsx
@@ -15,13 +15,14 @@
* License along with this program. If not, see
* <https://www.gnu.org/licenses/>.
*/
-import { Conversation, ConversationView, WebSocketMessageType } from 'jami-web-common';
+import { ConversationView, WebSocketMessageType } from 'jami-web-common';
import { createContext, useContext, useEffect, useState } from 'react';
import LoadingPage from '../components/Loading';
import { useUrlParams } from '../hooks/useUrlParams';
+import { Conversation } from '../models/Conversation';
import { ConversationRouteParams } from '../router';
-import { useConversationQuery } from '../services/Conversation';
+import { useConversationQuery } from '../services/conversationQueries';
import { WithChildren } from '../utils/utils';
import { useAuthContext } from './AuthProvider';
import { WebSocketContext } from './WebSocketProvider';
diff --git a/client/src/contexts/MessengerProvider.tsx b/client/src/contexts/MessengerProvider.tsx
index f92a6d7..3ec6164 100644
--- a/client/src/contexts/MessengerProvider.tsx
+++ b/client/src/contexts/MessengerProvider.tsx
@@ -15,9 +15,11 @@
* License along with this program. If not, see
* <https://www.gnu.org/licenses/>.
*/
-import { Contact, Conversation, ConversationMessage, WebSocketMessageType } from 'jami-web-common';
-import React, { createContext, ReactNode, useContext, useEffect, useState } from 'react';
+import { ConversationMessage, WebSocketMessageType } from 'jami-web-common';
+import { createContext, ReactNode, useContext, useEffect, useState } from 'react';
+import { Contact } from '../models/Contact';
+import { Conversation } from '../models/Conversation';
import { setRefreshFromSlice } from '../redux/appSlice';
import { useAppDispatch, useAppSelector } from '../redux/hooks';
import { SetState } from '../utils/utils';