Skip to content

Commit

Permalink
Refactor code to use 'timestamp' instead of 'time' in ChatTalkContent
Browse files Browse the repository at this point in the history
  • Loading branch information
tako0614 committed Jul 15, 2024
1 parent 755ee16 commit bc727d9
Show file tree
Hide file tree
Showing 8 changed files with 224 additions and 8 deletions.
4 changes: 4 additions & 0 deletions fresh.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ import * as $api_v2_server_information_users_changes from "./routes/api/v2/serve
import * as $api_v2_server_information_users_icon from "./routes/api/v2/server/information/users/icon.ts";
import * as $api_v2_server_information_users_profile from "./routes/api/v2/server/information/users/profile.ts";
import * as $api_v2_server_pubkey from "./routes/api/v2/server/pubkey.ts";
import * as $home_friends_name_ from "./routes/home/friends/[name].tsx";
import * as $home_index from "./routes/home/index.tsx";
import * as $index from "./routes/index.tsx";
import * as $setting_friends_name_ from "./routes/setting/friends/[name].tsx";
import * as $setting_index from "./routes/setting/index.tsx";
Expand Down Expand Up @@ -196,6 +198,8 @@ const manifest = {
"./routes/api/v2/server/information/users/icon.ts": $api_v2_server_information_users_icon,
"./routes/api/v2/server/information/users/profile.ts": $api_v2_server_information_users_profile,
"./routes/api/v2/server/pubkey.ts": $api_v2_server_pubkey,
"./routes/home/friends/[name].tsx": $home_friends_name_,
"./routes/home/index.tsx": $home_index,
"./routes/index.tsx": $index,
"./routes/setting/friends/[name].tsx": $setting_friends_name_,
"./routes/setting/index.tsx": $setting_index,
Expand Down
6 changes: 3 additions & 3 deletions islands/ChatSend.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function ChatSend({ state }: { state: AppStateType }) {
);
return;
}
const msg = state.inputMessage.value
const msg = state.inputMessage.value;
const res = fetch(
"/api/v2/client/talks/friend/text",
{
Expand All @@ -21,8 +21,8 @@ function ChatSend({ state }: { state: AppStateType }) {
"Content-Type": "application/json",
},
body: JSON.stringify({
sessionid : state.sessionid.value,
friendid : state.friendid.value,
sessionid: state.sessionid.value,
friendid: state.friendid.value,
text: msg,
}),
},
Expand Down
15 changes: 14 additions & 1 deletion islands/TalkListContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,20 @@ import { useSignal } from "@preact/signals";
import { useEffect } from "preact/hooks";
function TalkListContent({ state }: { state: AppStateType }) {
if (state.page.value === 0) {
return <></>;
return (
<>
<div class="flex">
<div class="w-3/4">
<div>
takoserver
</div>
</div>
<div class="w-1/4">
<img src="/api/v2/client/users/icon" class="w-3/4 mx-auto rounded-full" alt="" />
</div>
</div>
</>
);
} else if (state.page.value === 1) {
return (
<>
Expand Down
4 changes: 2 additions & 2 deletions islands/setDefaultState.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ export default function setDefaultState({ state }: { state: AppStateType }) {
message: data.message,
userName: data.userName,
timestamp: data.time,
read: []
}
read: [],
};
const result = state.talkData.value.concat(message);
result.sort((a, b) => {
return new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime();
Expand Down
2 changes: 1 addition & 1 deletion routes/api/v2/client/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ async function subscribeMessage(channel: string | string[]) {
console.log("Invalid SessionID");
return;
}
if(session.roomType === "friend") {
if (session.roomType === "friend") {
const message = data.message;
if (typeof message !== "string") {
console.log("Invalid Message");
Expand Down
2 changes: 1 addition & 1 deletion routes/api/v2/client/talks/friend/text.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export const handler = {
const sessionid = body.sessionid;
const channel = env["REDIS_CH"];
if (typeof message !== "string") {
console.log(message)
console.log(message);
return new Response(JSON.stringify({ status: false, message: "Invalid message" }), {
headers: { "Content-Type": "application/json" },
status: 400,
Expand Down
102 changes: 102 additions & 0 deletions routes/home/friends/[name].tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
import users from "../../../models/users.ts";
import { load } from "$std/dotenv/mod.ts";
import Chat from "../../../components/chat.tsx";
import Welcome from "../../../components/welcome.tsx";
import SetUp from "../../../islands/setup.tsx";
const env = await load();
export const handler = {
async GET(req: any, ctx: any) {
const name = ctx.params.name;
if (!ctx.state.data.loggedIn) {
if (ctx.state.data.isSetUp) {
return ctx.render({ loggedIn: false, isAddFriendForm: false, isSetUp: true });
}
return ctx.render({ loggedIn: false, isAddFriendForm: false, isSetUp: false });
}
const requrl = new URL(req.url);
const key = requrl.searchParams.get("key") || "";
if (key === "" || key === null || key === undefined) {
return ctx.render({
loggedIn: true,
isAddFriendForm: false,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
name,
});
}
const userInfo = await users.findOne({ addFriendKey: key });
if (userInfo === null || userInfo === undefined) {
return ctx.render({
loggedIn: true,
isAddFriendForm: false,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
name,
});
}
const sessionUserId: string = ctx.state.data.userid;
const userInfoId: string = userInfo.uuid;
if (sessionUserId != userInfoId) {
return ctx.render({
loggedIn: true,
key,
isAddFriendForm: true,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
name,
});
}
return ctx.render({
loggedIn: true,
key,
isAddFriendForm: false,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
name,
});
},
};
export default function Home({ data }: { data: any }) {
if (!data.loggedIn) {
if (data.isSetUp) {
return (
<>
<head>
<title>tako's | takos.jp</title>
<meta
name="description"
content="日本産オープンソース分散型チャットアプリ「tako's」"
/>
<link rel="stylesheet" href="/stylesheet.css"></link>
</head>
<SetUp />
</>
);
}
return (
<>
<>
<head>
<title>tako's | takos.jp</title>
<meta
name="description"
content="日本産オープンソース分散型チャットアプリ「tako's」"
/>
<link rel="stylesheet" href="/stylesheet.css"></link>
</head>
<Welcome></Welcome>
{
/*
<Welcom sitekey={sitekey} />
*/
}
</>
</>
);
}
return (
<>
<Chat page={0} userName={data.userName} friendid={data.name} />
</>
);
}
97 changes: 97 additions & 0 deletions routes/home/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import users from "../../models/users.ts";
import { load } from "$std/dotenv/mod.ts";
import Chat from "../../components/chat.tsx";
import Welcome from "../../components/welcome.tsx";
import SetUp from "../../islands/setup.tsx";
const env = await load();
export const handler = {
async GET(req: any, ctx: any) {
if (!ctx.state.data.loggedIn) {
if (ctx.state.data.isSetUp) {
return ctx.render({ loggedIn: false, isAddFriendForm: false, isSetUp: true });
}
return ctx.render({ loggedIn: false, isAddFriendForm: false, isSetUp: false });
}
const requrl = new URL(req.url);
const key = requrl.searchParams.get("key") || "";
if (key === "" || key === null || key === undefined) {
return ctx.render({
loggedIn: true,
isAddFriendForm: false,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
});
}
const userInfo = await users.findOne({ addFriendKey: key });
if (userInfo === null || userInfo === undefined) {
return ctx.render({
loggedIn: true,
isAddFriendForm: false,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
});
}
const sessionUserId: string = ctx.state.data.userid;
const userInfoId: string = userInfo.uuid;
if (sessionUserId != userInfoId) {
return ctx.render({
loggedIn: true,
key,
isAddFriendForm: true,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
});
}
return ctx.render({
loggedIn: true,
key,
isAddFriendForm: false,
userName: ctx.state.data.userName,
userNickName: ctx.state.data.nickName,
});
},
};
export default function Home({ data }: { data: any }) {
if (!data.loggedIn) {
if (data.isSetUp) {
return (
<>
<head>
<title>tako's | takos.jp</title>
<meta
name="description"
content="日本産オープンソース分散型チャットアプリ「tako's」"
/>
<link rel="stylesheet" href="/stylesheet.css"></link>
</head>
<SetUp />
</>
);
}
return (
<>
<>
<head>
<title>tako's | takos.jp</title>
<meta
name="description"
content="日本産オープンソース分散型チャットアプリ「tako's」"
/>
<link rel="stylesheet" href="/stylesheet.css"></link>
</head>
<Welcome></Welcome>
{
/*
<Welcom sitekey={sitekey} />
*/
}
</>
</>
);
}
return (
<>
<Chat page={0} userName={data.userName} />
</>
);
}

0 comments on commit bc727d9

Please sign in to comment.