bug fixing and improvements (#33)

This commit is contained in:
gabrielmer 2024-06-12 14:23:16 +02:00 committed by GitHub
parent 1e176113d0
commit e85c9f2be5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 27 additions and 11 deletions

View File

@ -35,6 +35,15 @@ npm install
npm run dev npm run dev
``` ```
The default API endpoint used to contact a Waku Node is http://localhost:8645
In order to set a custom endpoint, please set the env variable `VITE_API_ENDPOINT`
For example
```
export VITE_API_ENDPOINT=<my-other-endpoint>
```
### Docker ### Docker
``` ```
@ -66,7 +75,7 @@ your-domain.com {
## Depend APIs ## Depend APIs
- /relay/v1/auto/messages - /relay/v1/auto/messages
- /store/v1/messages - /store/v3/messages
## Known Issues ## Known Issues

4
package-lock.json generated
View File

@ -1,11 +1,11 @@
{ {
"name": "ferry-chat", "name": "waku-frontend",
"version": "0.0.0", "version": "0.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ferry-chat", "name": "waku-frontend",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dialog": "^1.0.5",

View File

@ -20,7 +20,7 @@ import logo from "./assets/logo-waku.svg";
interface Message { interface Message {
payload: string; payload: string;
contentTopic: string; content_topic: string;
timestamp: number; timestamp: number;
} }
@ -38,12 +38,17 @@ interface ResponseData {
cursor?: Cursor; cursor?: Cursor;
} }
interface MessageData {
message: Message;
message_hash: string;
}
interface CommunityMetadata { interface CommunityMetadata {
name: string; name: string;
contentTopic: string; contentTopic: string;
} }
const SERVICE_ENDPOINT = "https://waku.whisperd.tech"; const SERVICE_ENDPOINT = import.meta.env.VITE_API_ENDPOINT || "http://localhost:8645";
const COMMUNITY_CONTENT_TOPIC_PREFIX = "/universal/1/community"; const COMMUNITY_CONTENT_TOPIC_PREFIX = "/universal/1/community";
function App() { function App() {
@ -68,7 +73,7 @@ function App() {
setUsername(name); setUsername(name);
const endpoint = localStorage.getItem("apiEndpoint"); const endpoint = localStorage.getItem("apiEndpoint");
if (endpoint) { if (endpoint && !import.meta.env.VITE_API_ENDPOINT) {
setApiEndpoint(endpoint); setApiEndpoint(endpoint);
} }
@ -98,17 +103,19 @@ function App() {
return; return;
} }
let url = `${apiEndpoint}/store/v1/messages?contentTopics=${joinedContentTopics}&ascending=false&pageSize=300`; let url = `${apiEndpoint}/store/v3/messages?contentTopics=${encodeURIComponent(joinedContentTopics)}&ascending=false&pageSize=300&includeData=true`;
const response = await axios.get(url); const response = await axios.get(url);
console.log("Data:", response.data); console.log("Data:", response.data);
const parsedResponse = response.data.messages.map((obj: MessageData) => obj.message);
setMessages((prev) => { setMessages((prev) => {
const filtered = response.data.messages.filter((msg: Message) => { const filtered = parsedResponse.filter((msg: Message) => {
const found = prev.find( const found = prev.find(
(item) => (item) =>
item.payload === msg.payload && item.payload === msg.payload &&
item.timestamp === msg.timestamp && item.timestamp === msg.timestamp &&
item.contentTopic === msg.contentTopic item.content_topic === msg.content_topic
); );
return !found; return !found;
}); });
@ -136,7 +143,7 @@ function App() {
(item) => (item) =>
item.payload === msg.payload && item.payload === msg.payload &&
item.timestamp === msg.timestamp && item.timestamp === msg.timestamp &&
item.contentTopic === msg.contentTopic item.content_topic === msg.content_topic
); );
return !found; return !found;
}); });
@ -277,7 +284,7 @@ function App() {
const decodeMsg = (index: number, msg: Message) => { const decodeMsg = (index: number, msg: Message) => {
try { try {
if ( if (
msg.contentTopic !== msg.content_topic !==
`${COMMUNITY_CONTENT_TOPIC_PREFIX}/${community?.contentTopic}` `${COMMUNITY_CONTENT_TOPIC_PREFIX}/${community?.contentTopic}`
) { ) {
return; return;