diff --git a/client/index.html b/client/index.html
index cfdaeb9..bbd345a 100644
--- a/client/index.html
+++ b/client/index.html
@@ -10,6 +10,8 @@
+
+
diff --git a/client/package-lock.json b/client/package-lock.json
index a5fafce..a5cc007 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -577,6 +577,8 @@
},
"node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz",
+ "integrity": "sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==",
"cpu": [
"x64"
],
@@ -1917,6 +1919,8 @@
},
"node_modules/lightningcss-linux-x64-musl": {
"version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
"cpu": [
"x64"
],
diff --git a/client/public/2pills.png b/client/public/assets/2pills.png
similarity index 100%
rename from client/public/2pills.png
rename to client/public/assets/2pills.png
diff --git a/client/md.css b/client/public/css/md.css
similarity index 100%
rename from client/md.css
rename to client/public/css/md.css
diff --git a/client/style.css b/client/public/css/style.css
similarity index 100%
rename from client/style.css
rename to client/public/css/style.css
diff --git a/client/src/comps/App.ts b/client/src/comps/App.ts
index ca46c1d..779a7b7 100644
--- a/client/src/comps/App.ts
+++ b/client/src/comps/App.ts
@@ -2,8 +2,8 @@ import { ClientEvent, RoomEvent } from "matrix-js-sdk"
import { initMatrixClient, matrix } from "../matrix"
import RoomList from "./RoomList"
import Component from "./Component"
-import Form from "./Form"
-import View from "./View"
+import Form from "./forms/Form"
+import View from "./views/View"
import Modal from "./Modal"
export default class App extends Component {
diff --git a/client/src/comps/ChatInput.ts b/client/src/comps/ChatInput.ts
index 696a836..2e6a1be 100644
--- a/client/src/comps/ChatInput.ts
+++ b/client/src/comps/ChatInput.ts
@@ -2,8 +2,8 @@ import { MsgType } from "matrix-js-sdk"
import { matrix } from "../matrix"
import Component from "./Component"
import EmojiPicker from "./EmojiPicker"
-import PostView from "./PostView"
-import RoomView from "./RoomView"
+import PostView from "./views/PostView"
+import RoomView from "./views/RoomView"
// Credits to DeepSeek-R1, wow (edited though)
export default class ChatInput extends Component {
diff --git a/client/src/comps/ForumTab.ts b/client/src/comps/ForumTab.ts
index 23b0c81..6b2de59 100644
--- a/client/src/comps/ForumTab.ts
+++ b/client/src/comps/ForumTab.ts
@@ -4,7 +4,7 @@ import { twemojiParse } from "../md"
import Component from "./Component"
import ContextMenu from "./ContextMenu"
import { app } from "../main"
-import ConfirmForm from "./ConfirmForm"
+import ConfirmForm from "./forms/ConfirmForm"
export default class ForumTab extends Component {
readonly tab: HTMLElement
diff --git a/client/src/comps/Login.ts b/client/src/comps/Login.ts
index 277e871..fe66395 100644
--- a/client/src/comps/Login.ts
+++ b/client/src/comps/Login.ts
@@ -12,7 +12,7 @@ export default class Login extends Component {
this.element.appendChild(title)
const morpheusImg = document.createElement("img")
- morpheusImg.src = "/2pills.png"
+ morpheusImg.src = "/assets/2pills.png"
morpheusImg.id = "morpehusImg"
this.element.appendChild(morpheusImg)
diff --git a/client/src/comps/MemberList.ts b/client/src/comps/MemberList.ts
index 40ec09e..b790e39 100644
--- a/client/src/comps/MemberList.ts
+++ b/client/src/comps/MemberList.ts
@@ -1,6 +1,6 @@
import { RoomMember } from "matrix-js-sdk"
import Component from "./Component"
-import FormButton from "./FormButton"
+import FormButton from "./form-comps/FormButton"
import { matrix } from "../matrix"
import Member from "./Member"
import { forms } from "../main"
diff --git a/client/src/comps/Modal.ts b/client/src/comps/Modal.ts
index 457019f..a06269d 100644
--- a/client/src/comps/Modal.ts
+++ b/client/src/comps/Modal.ts
@@ -1,6 +1,6 @@
import { app } from "../main"
import Component from "./Component"
-import Form from "./Form"
+import Form from "./forms/Form"
export default class Modal extends Component {
readonly form: Form
diff --git a/client/src/comps/RoomList.ts b/client/src/comps/RoomList.ts
index bf85e48..b119d90 100644
--- a/client/src/comps/RoomList.ts
+++ b/client/src/comps/RoomList.ts
@@ -1,6 +1,6 @@
import { app, forms, views } from "../main"
import Component from "./Component"
-import FormButton from "./FormButton"
+import FormButton from "./form-comps/FormButton"
import ForumTab from "./ForumTab"
import { Room } from "matrix-js-sdk"
diff --git a/client/src/comps/events/ChatMessageBase.ts b/client/src/comps/events/ChatMessageBase.ts
index 340dfeb..36d1243 100644
--- a/client/src/comps/events/ChatMessageBase.ts
+++ b/client/src/comps/events/ChatMessageBase.ts
@@ -4,7 +4,7 @@ import { getMXUser, matrix } from "../../matrix"
import EventBase from "./EventBase"
import { relativeTimeFormat } from "../../intl"
import ContextMenu, { ContextMenuItem } from "../ContextMenu"
-import ConfirmForm from "../ConfirmForm"
+import ConfirmForm from "../forms/ConfirmForm"
export default class ChatMessageBase extends EventBase {
constructor(msg: MatrixEvent) {
diff --git a/client/src/comps/FormButton.ts b/client/src/comps/form-comps/FormButton.ts
similarity index 90%
rename from client/src/comps/FormButton.ts
rename to client/src/comps/form-comps/FormButton.ts
index 300626d..a4eee62 100644
--- a/client/src/comps/FormButton.ts
+++ b/client/src/comps/form-comps/FormButton.ts
@@ -1,4 +1,4 @@
-import Component from "./Component"
+import Component from "../Component"
export default class FormButton extends Component {
constructor(
diff --git a/client/src/comps/FormCheckbox.ts b/client/src/comps/form-comps/FormCheckbox.ts
similarity index 93%
rename from client/src/comps/FormCheckbox.ts
rename to client/src/comps/form-comps/FormCheckbox.ts
index 8e59a81..f2c5ac0 100644
--- a/client/src/comps/FormCheckbox.ts
+++ b/client/src/comps/form-comps/FormCheckbox.ts
@@ -1,4 +1,4 @@
-import Component from "./Component"
+import Component from "../Component"
export default class FormCheckbox extends Component {
private readonly input: HTMLInputElement
diff --git a/client/src/comps/FormInputList.ts b/client/src/comps/form-comps/FormInputList.ts
similarity index 96%
rename from client/src/comps/FormInputList.ts
rename to client/src/comps/form-comps/FormInputList.ts
index 3589dcd..e282a91 100644
--- a/client/src/comps/FormInputList.ts
+++ b/client/src/comps/form-comps/FormInputList.ts
@@ -1,4 +1,4 @@
-import Component from "./Component"
+import Component from "../Component"
import FormButton from "./FormButton"
import FormTextInput from "./FormTextInput"
diff --git a/client/src/comps/FormMultiSelect.ts b/client/src/comps/form-comps/FormMultiSelect.ts
similarity index 99%
rename from client/src/comps/FormMultiSelect.ts
rename to client/src/comps/form-comps/FormMultiSelect.ts
index 2e0a4d7..2df81b4 100644
--- a/client/src/comps/FormMultiSelect.ts
+++ b/client/src/comps/form-comps/FormMultiSelect.ts
@@ -1,4 +1,4 @@
-import Component from "./Component"
+import Component from "../Component"
export type FormMultiSelectOption = {
id: string
diff --git a/client/src/comps/FormTextInput.ts b/client/src/comps/form-comps/FormTextInput.ts
similarity index 90%
rename from client/src/comps/FormTextInput.ts
rename to client/src/comps/form-comps/FormTextInput.ts
index c378cd9..33bd15c 100644
--- a/client/src/comps/FormTextInput.ts
+++ b/client/src/comps/form-comps/FormTextInput.ts
@@ -1,5 +1,5 @@
-import Component from "./Component"
-import EmojiButton from "./EmojiButton"
+import Component from "../Component"
+import EmojiButton from "../EmojiButton"
export default class FormTextInput extends Component {
private readonly input: HTMLInputElement
diff --git a/client/src/comps/FormTextarea.ts b/client/src/comps/form-comps/FormTextarea.ts
similarity index 91%
rename from client/src/comps/FormTextarea.ts
rename to client/src/comps/form-comps/FormTextarea.ts
index 94f3b83..6ceaac5 100644
--- a/client/src/comps/FormTextarea.ts
+++ b/client/src/comps/form-comps/FormTextarea.ts
@@ -1,5 +1,5 @@
-import Component from "./Component"
-import EmojiButton from "./EmojiButton"
+import Component from "../Component"
+import EmojiButton from "../EmojiButton"
export default class FormTextarea extends Component {
private readonly textarea: HTMLTextAreaElement
diff --git a/client/src/comps/SubmitButton.ts b/client/src/comps/form-comps/SubmitButton.ts
similarity index 100%
rename from client/src/comps/SubmitButton.ts
rename to client/src/comps/form-comps/SubmitButton.ts
diff --git a/client/src/comps/ConfirmForm.ts b/client/src/comps/forms/ConfirmForm.ts
similarity index 86%
rename from client/src/comps/ConfirmForm.ts
rename to client/src/comps/forms/ConfirmForm.ts
index 11b9969..d4a5364 100644
--- a/client/src/comps/ConfirmForm.ts
+++ b/client/src/comps/forms/ConfirmForm.ts
@@ -1,6 +1,6 @@
-import { MaybePromise } from "../types"
+import { MaybePromise } from "../../types"
import Form from "./Form"
-import SubmitButton from "./SubmitButton"
+import SubmitButton from "../form-comps/SubmitButton"
export default class ConfirmForm extends Form {
handler!: (confirmed: boolean) => MaybePromise
diff --git a/client/src/comps/Form.ts b/client/src/comps/forms/Form.ts
similarity index 86%
rename from client/src/comps/Form.ts
rename to client/src/comps/forms/Form.ts
index ad00ac8..5352e99 100644
--- a/client/src/comps/Form.ts
+++ b/client/src/comps/forms/Form.ts
@@ -1,8 +1,8 @@
-import { app } from "../main"
-import { twemojiParse } from "../md"
-import { MaybePromise } from "../types"
-import Component from "./Component"
-import Modal from "./Modal"
+import { app } from "../../main"
+import { twemojiParse } from "../../md"
+import { MaybePromise } from "../../types"
+import Component from "../Component"
+import Modal from "../Modal"
export default abstract class Form<
ResetArgs extends Array = Array,
diff --git a/client/src/comps/RoomCreationForm.ts b/client/src/comps/forms/RoomCreationForm.ts
similarity index 85%
rename from client/src/comps/RoomCreationForm.ts
rename to client/src/comps/forms/RoomCreationForm.ts
index 24acf27..1df20b8 100644
--- a/client/src/comps/RoomCreationForm.ts
+++ b/client/src/comps/forms/RoomCreationForm.ts
@@ -1,9 +1,9 @@
-import { app, views } from "../main"
+import { app, views } from "../../main"
import Form from "./Form"
-import FormTextInput from "./FormTextInput"
-import { matrix } from "../matrix"
-import FormCheckbox from "./FormCheckbox"
-import SubmitButton from "./SubmitButton"
+import FormTextInput from "../form-comps/FormTextInput"
+import { matrix } from "../../matrix"
+import FormCheckbox from "../form-comps/FormCheckbox"
+import SubmitButton from "../form-comps/SubmitButton"
export default class RoomCreationForm extends Form {
readonly nameInput: FormTextInput
diff --git a/client/src/comps/RoomInvitationForm.ts b/client/src/comps/forms/RoomInvitationForm.ts
similarity index 88%
rename from client/src/comps/RoomInvitationForm.ts
rename to client/src/comps/forms/RoomInvitationForm.ts
index bb9dbd8..467c412 100644
--- a/client/src/comps/RoomInvitationForm.ts
+++ b/client/src/comps/forms/RoomInvitationForm.ts
@@ -1,8 +1,8 @@
import { Room } from "matrix-js-sdk"
-import { matrix } from "../matrix"
-import { app, views } from "../main"
+import { matrix } from "../../matrix"
+import { app, views } from "../../main"
import Form from "./Form"
-import SubmitButton from "./SubmitButton"
+import SubmitButton from "../form-comps/SubmitButton"
export default class RoomInvitationForm extends Form {
room: Room | null = null
diff --git a/client/src/comps/RoomInviteForm.ts b/client/src/comps/forms/RoomInviteForm.ts
similarity index 84%
rename from client/src/comps/RoomInviteForm.ts
rename to client/src/comps/forms/RoomInviteForm.ts
index 0d2cdad..bdd1c38 100644
--- a/client/src/comps/RoomInviteForm.ts
+++ b/client/src/comps/forms/RoomInviteForm.ts
@@ -1,8 +1,8 @@
import { Room } from "matrix-js-sdk"
import Form from "./Form"
-import FormTextInput from "./FormTextInput"
-import { matrix } from "../matrix"
-import SubmitButton from "./SubmitButton"
+import FormTextInput from "../form-comps/FormTextInput"
+import { matrix } from "../../matrix"
+import SubmitButton from "../form-comps/SubmitButton"
export default class RoomInviteForm extends Form {
room: Room | null = null
diff --git a/client/src/comps/PostView.ts b/client/src/comps/views/PostView.ts
similarity index 86%
rename from client/src/comps/PostView.ts
rename to client/src/comps/views/PostView.ts
index 3d0c8be..8c19a6a 100644
--- a/client/src/comps/PostView.ts
+++ b/client/src/comps/views/PostView.ts
@@ -1,9 +1,9 @@
-import PostAuthor from "./PostAuthor"
-import PostContent from "./PostContent"
-import View from "./View"
-import ChatInput from "./ChatInput"
-import EventList from "./EventList"
-import TagList from "./TagList"
+import PostAuthor from "../PostAuthor"
+import PostContent from "../PostContent"
+import View from "../views/View"
+import ChatInput from "../ChatInput"
+import EventList from "../EventList"
+import TagList from "../TagList"
export default class PostView extends View<[string]> {
private currentForumId?: string
diff --git a/client/src/comps/RoomView.ts b/client/src/comps/views/RoomView.ts
similarity index 91%
rename from client/src/comps/RoomView.ts
rename to client/src/comps/views/RoomView.ts
index b080364..df4408e 100644
--- a/client/src/comps/RoomView.ts
+++ b/client/src/comps/views/RoomView.ts
@@ -1,10 +1,10 @@
-import View from "./View"
-import ChatInput from "./ChatInput"
-import EventList from "./EventList"
+import View from "../views//View"
+import ChatInput from "../ChatInput"
+import EventList from "../EventList"
import { MatrixEvent, Room, RoomEvent } from "matrix-js-sdk"
-import { matrix } from "../matrix"
-import MemberList from "./MemberList"
-import { parseEventContent } from "../events"
+import { matrix } from "../../matrix"
+import MemberList from "../MemberList"
+import { parseEventContent } from "../../events"
export default class RoomView extends View {
private currentRoom?: Room
diff --git a/client/src/comps/View.ts b/client/src/comps/views/View.ts
similarity index 88%
rename from client/src/comps/View.ts
rename to client/src/comps/views/View.ts
index 46c78bb..55fa35f 100644
--- a/client/src/comps/View.ts
+++ b/client/src/comps/views/View.ts
@@ -1,5 +1,5 @@
-import Component from "./Component"
-import ViewHead from "./ViewHead"
+import Component from "../Component"
+import ViewHead from "../views/ViewHead"
export default abstract class View<
ResetArgs extends Array = Array,
diff --git a/client/src/comps/ViewHead.ts b/client/src/comps/views/ViewHead.ts
similarity index 85%
rename from client/src/comps/ViewHead.ts
rename to client/src/comps/views/ViewHead.ts
index 497f42b..650a1f7 100644
--- a/client/src/comps/ViewHead.ts
+++ b/client/src/comps/views/ViewHead.ts
@@ -1,5 +1,5 @@
-import { twemojiParse } from "../md"
-import Component from "./Component"
+import { twemojiParse } from "../../md"
+import Component from "../Component"
export default class ViewHead extends Component {
titleElement: HTMLSpanElement
diff --git a/client/src/main.ts b/client/src/main.ts
index ece7fa0..dfab82c 100644
--- a/client/src/main.ts
+++ b/client/src/main.ts
@@ -1,13 +1,11 @@
-import "../style.css"
-import "../md.css"
import "highlight.js/styles/github-dark.min.css"
import App from "./comps/App"
import { User } from "matrix-js-sdk"
import Login from "./comps/Login"
-import RoomView from "./comps/RoomView"
-import RoomCreationForm from "./comps/RoomCreationForm"
-import RoomInvitationForm from "./comps/RoomInvitationForm"
-import RoomInviteForm from "./comps/RoomInviteForm"
+import RoomView from "./comps/views/RoomView"
+import RoomCreationForm from "./comps/forms/RoomCreationForm"
+import RoomInvitationForm from "./comps/forms/RoomInvitationForm"
+import RoomInviteForm from "./comps/forms/RoomInviteForm"
export let app: App
export let clientUser: User
diff --git a/client/vite.config.js b/client/vite.config.js
index 8e9bec1..a4c6222 100644
--- a/client/vite.config.js
+++ b/client/vite.config.js
@@ -1,13 +1,5 @@
import { defineConfig } from "vite"
import { viteStaticCopy } from "vite-plugin-static-copy"
-import YSON from "@j0code/yson"
-
-const dev_config = await YSON.load("./dev_config.yson").catch(() => ({
- vite: {
- port: undefined,
- host: undefined,
- },
-}))
// https://vitejs.dev/config/
/** @type {import('vite').UserConfig} */
@@ -15,7 +7,7 @@ export default defineConfig({
envDir: "../",
server: {
host: "0.0.0.0",
- port: dev_config.vite?.port,
+ port: 5173,
proxy: {
"/api": {
target: "http://localhost:3001",
@@ -26,9 +18,8 @@ export default defineConfig({
},
hmr: {
protocol: "ws",
- // path: "/.proxy/"
},
- allowedHosts: [dev_config.vite?.host].filter(Boolean),
+ allowedHosts: [],
strictPort: true,
},
plugins: [
diff --git a/example.env b/example.env
deleted file mode 100644
index 18f087d..0000000
--- a/example.env
+++ /dev/null
@@ -1 +0,0 @@
-VITE_DISCORD_CLIENT_ID = 0