Skip to content

Commit 4a951dd

Browse files
committed
WIP: Separate this into individual commits!
1 parent 21c9632 commit 4a951dd

File tree

12 files changed

+1064
-539
lines changed

12 files changed

+1064
-539
lines changed

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
11
# LiveMatrix ChatBox client
22

33
A chatbox client written in Svelte, to be paired with LiveMatrix Server binary
4+
5+
## Configuration
6+
Take the sample config and modify it according to your server configuration.
7+
8+
### Proto(col)
9+
For prot(col) you really have two options, either `http`, or `https`, depending on your server configuration.
10+
The same goes for websocket proto(col). If the LiveMatrix Server instance is behind a reverse_proxy, you are going to want to use `wss`, or `ws` when both the JS application and LiveMatrix server, run on the same, local, development machine.
11+
12+
### Host & Port
13+
If you are connecting to the LiveMatrix server **through a domain name**, leave the `port` empty, to avoid errors!
14+
15+
### Permitting CORS
16+
> This configuration is going to help you, if you need to host the **LiveMatrix Server** under a different domain / IP, or access server from dev instance
17+
#### Caddy reverse proxy
18+
```Caddyfile
19+
(cors) { // Put this macro on top of your configuration file
20+
@cors_preflight method OPTIONS
21+
@cors header Origin {args.0}
22+
23+
handle @cors_preflight {
24+
header Access-Control-Allow-Origin "{args.0}"
25+
header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE"
26+
header Access-Control-Allow-Headers "Content-Type, Authorization, X-CSRFToken"
27+
header Access-Control-Allow-Credentials "true"
28+
header Access-Control-Max-Age "3600"
29+
respond "" 204
30+
}
31+
32+
handle @cors {
33+
header Access-Control-Allow-Origin "{args.0}"
34+
header Access-Control-Expose-Headers "Link"
35+
header defer
36+
}
37+
}
38+
39+
lm_server.domain.com {
40+
import cors https://lm_client.example.com // Also works with http://localhost:5173, etc.
41+
reverse_proxy localhost:3002 { // This points to the interface bound by your livematrix server application
42+
header_down Set-Cookie (.*) "$1; SameSite=None; Secure"
43+
header_down Access-Control-Allow-Credentials "true"
44+
}
45+
}

TODO.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# TODO
2+
> Completed tasks should be pushed in description of a commit
3+
## Fixes
4+
- [ ] Make the styling work correctly.
5+
- [ ] Fix font & its color
6+
- [ ] Make the app embedable into a user defined container
7+
- [ ] Allow user to adjust positioning of the UI
8+
- [ ] Allow user to adjust scaling of the UI
9+
- [ ] Configurable branding
10+
- [ ] Configurable logo
11+
- [ ] Configurable Username
12+
- [x] Make the bubble disappear when (catState.isChatboxOpen) ✅ v0.2.3
13+
14+
## Features
15+
- [ ] Close UI with ESC
16+
- [ ] Notifications worker for new messages
17+
- [ ] Make a smooth transition between bubble and chatbox view
18+
- [ ] Call to action bubble, pointing that the Chat here is available
19+
- [x] Implement messages clustering

package.json

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,27 @@
3535
"svelte": "^5.0.0"
3636
},
3737
"devDependencies": {
38-
"@eslint/compat": "^1.2.5",
39-
"@eslint/js": "^9.18.0",
40-
"@sveltejs/adapter-auto": "^6.0.0",
41-
"@sveltejs/kit": "^2.22.0",
42-
"@sveltejs/package": "^2.0.0",
38+
"@eslint/compat": "^1.3.1",
39+
"@eslint/js": "^9.32.0",
40+
"@sveltejs/adapter-auto": "^6.0.1",
41+
"@sveltejs/kit": "^2.27.1",
42+
"@sveltejs/package": "^2.4.0",
4343
"@sveltejs/vite-plugin-svelte": "^6.1.0",
44-
"eslint": "^9.18.0",
45-
"eslint-config-prettier": "^10.0.1",
46-
"eslint-plugin-svelte": "^3.0.0",
47-
"globals": "^16.0.0",
48-
"prettier": "^3.4.2",
49-
"prettier-plugin-svelte": "^3.3.3",
50-
"publint": "^0.3.2",
51-
"sass-embedded": "^1.89.2",
52-
"svelte": "^5.0.0",
53-
"svelte-check": "^4.0.0",
44+
"eslint": "^9.32.0",
45+
"eslint-config-prettier": "^10.1.8",
46+
"eslint-plugin-svelte": "^3.11.0",
47+
"globals": "^16.3.0",
48+
"prettier": "^3.6.2",
49+
"prettier-plugin-svelte": "^3.4.0",
50+
"publint": "^0.3.12",
51+
"sass-embedded": "^1.90.0",
52+
"svelte": "^5.37.3",
53+
"svelte-check": "^4.3.1",
54+
"svelte-outside": "^0.0.3",
5455
"svelte-standalone": "2.3.1-beta",
55-
"typescript": "^5.0.0",
56-
"typescript-eslint": "^8.20.0",
57-
"vite": "^7.0.4",
56+
"typescript": "^5.9.2",
57+
"typescript-eslint": "^8.39.0",
58+
"vite": "^7.0.6",
5859
"vite-plugin-devtools-json": "^0.4.1"
5960
},
6061
"keywords": [

0 commit comments

Comments
 (0)