Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
thecybernanny-webapp
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
asranov0003
thecybernanny-webapp
Commits
40921f56
Commit
40921f56
authored
Jul 31, 2025
by
asranov0003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: add chats
parent
056d4711
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
57 additions
and
18 deletions
+57
-18
Messengers.css
src/pages/Messengers/Messengers.css
+15
-0
Messengers.tsx
src/pages/Messengers/Messengers.tsx
+13
-6
messengerHistorySlice.ts
src/stores/slices/messengerHistorySlice.ts
+16
-12
messenger.types.ts
src/types/messenger.types.ts
+13
-0
No files found.
src/pages/Messengers/Messengers.css
View file @
40921f56
...
...
@@ -71,4 +71,18 @@
.messengers__filter__date
label
{
margin-right
:
0.5rem
;
font-weight
:
bold
;
}
.messenger__chats__list
{
display
:
flex
;
flex-direction
:
column
;
gap
:
1rem
;
margin
:
1rem
0
;
}
.messenger__chats__item
{
padding
:
1rem
;
border-radius
:
10px
;
background
:
var
(
--content-bg-color
);
cursor
:
pointer
;
}
\ No newline at end of file
src/pages/Messengers/Messengers.tsx
View file @
40921f56
...
...
@@ -22,11 +22,10 @@ const Messengers: React.FC = () => {
);
const
{
t
}
=
useTranslation
();
const
{
selectedDevice
}
=
useAppSelector
((
state
:
RootState
)
=>
state
.
device
);
const
dispatch
=
useAppDispatch
();
const
{
messengerHistories
,
loading
,
error
}
=
useAppSelector
(
const
{
chats
,
loading
,
error
}
=
useAppSelector
(
(
state
:
RootState
)
=>
state
.
messengerHistory
);
const
dispatch
=
useAppDispatch
();
const
fetchMessengerHistories
=
()
=>
{
if
(
selectedDevice
?.
id
)
{
...
...
@@ -83,9 +82,17 @@ const Messengers: React.FC = () => {
{
error
&&
<
p
className=
"text-danger"
>
{
error
}
</
p
>
}
{
messengerHistories
.
length
===
0
&&
!
loading
&&
(
<
p
>
{
t
(
"messengers.empty"
)
}
</
p
>
)
}
{
chats
.
length
===
0
&&
!
loading
&&
<
p
>
{
t
(
"messengers.empty"
)
}
</
p
>
}
<
div
className=
"messenger__chats__list"
>
{
chats
.
map
((
chat
)
=>
{
return
(
<
div
key=
{
chat
.
dialog_id
}
className=
"messenger__chats__item"
>
<
p
>
{
chat
.
group_name
}
</
p
>
</
div
>
);
})
}
</
div
>
</
div
>
<
div
className=
"messengers__filter"
>
...
...
src/stores/slices/messengerHistorySlice.ts
View file @
40921f56
import
{
createAsyncThunk
,
createSlice
}
from
"@reduxjs/toolkit"
;
import
{
sendRpcRequest
}
from
"../../services/apiClient"
;
import
type
{
IChat
}
from
"../../types/messenger.types"
;
interface
MessengerHistoryState
{
messengerHistories
:
any
[];
chats
:
IChat
[];
loading
:
boolean
;
error
:
string
|
null
;
}
const
initialState
:
MessengerHistoryState
=
{
messengerHistorie
s
:
[],
chat
s
:
[],
loading
:
false
,
error
:
null
,
};
...
...
@@ -32,16 +33,19 @@ export const fetchMessengerHistory = createAsyncThunk(
{
rejectWithValue
}
)
=>
{
try
{
const
response
=
await
sendRpcRequest
<
any
[]
>
(
"data.getcontent"
,
{
deviceId
,
type
:
messengerId
,
dateFrom
,
dateTo
,
recStart
:
recStart
,
recLimit
:
500
,
});
const
response
=
await
sendRpcRequest
<
{
chats
:
IChat
[]
}
>
(
"data.getcontent"
,
{
deviceId
,
type
:
messengerId
,
dateFrom
,
dateTo
,
recStart
:
recStart
,
recLimit
:
500
,
}
);
return
response
;
return
response
.
chats
;
}
catch
(
error
:
unknown
)
{
if
(
typeof
error
===
"object"
&&
error
!==
null
&&
"message"
in
error
)
{
return
rejectWithValue
(
error
.
message
);
...
...
@@ -64,7 +68,7 @@ const messengerHistorySlice = createSlice({
})
.
addCase
(
fetchMessengerHistory
.
fulfilled
,
(
state
,
action
)
=>
{
state
.
loading
=
false
;
state
.
messengerHistorie
s
=
action
.
payload
;
state
.
chat
s
=
action
.
payload
;
})
.
addCase
(
fetchMessengerHistory
.
rejected
,
(
state
,
action
)
=>
{
state
.
loading
=
false
;
...
...
src/types/messenger.types.ts
0 → 100644
View file @
40921f56
export
interface
IChat
{
dialog_id
:
string
;
group_name
:
string
;
}
export
interface
IList
{
id
:
string
;
device_id
:
string
;
group_name
:
string
;
message
:
string
;
sender
:
string
;
date
:
string
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment