This commit is contained in:
FantasyPvP
2024-12-10 11:57:08 +00:00
parent 1707309d95
commit fb1c13bfa0
81 changed files with 2900 additions and 582 deletions
@@ -119,6 +119,28 @@ const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')
wasm.__wbindgen_export_7.get(state.dtor)(state.a, state.b)
});
function makeClosure(arg0, arg1, dtor, f) {
const state = { a: arg0, b: arg1, cnt: 1, dtor };
const real = (...args) => {
// First up with a closure we increment the internal reference
// count. This ensures that the Rust closure environment won't
// be deallocated while we're invoking it.
state.cnt++;
try {
return f(state.a, state.b, ...args);
} finally {
if (--state.cnt === 0) {
wasm.__wbindgen_export_7.get(state.dtor)(state.a, state.b);
state.a = 0;
CLOSURE_DTORS.unregister(state);
}
}
};
real.original = state;
CLOSURE_DTORS.register(real, state, state);
return real;
}
function makeMutClosure(arg0, arg1, dtor, f) {
const state = { a: arg0, b: arg1, cnt: 1, dtor };
const real = (...args) => {
@@ -144,28 +166,6 @@ function makeMutClosure(arg0, arg1, dtor, f) {
return real;
}
function makeClosure(arg0, arg1, dtor, f) {
const state = { a: arg0, b: arg1, cnt: 1, dtor };
const real = (...args) => {
// First up with a closure we increment the internal reference
// count. This ensures that the Rust closure environment won't
// be deallocated while we're invoking it.
state.cnt++;
try {
return f(state.a, state.b, ...args);
} finally {
if (--state.cnt === 0) {
wasm.__wbindgen_export_7.get(state.dtor)(state.a, state.b);
state.a = 0;
CLOSURE_DTORS.unregister(state);
}
}
};
real.original = state;
CLOSURE_DTORS.register(real, state, state);
return real;
}
function debugString(val) {
// primitive types
const type = typeof val;
@@ -231,23 +231,19 @@ function debugString(val) {
return className;
}
function __wbg_adapter_42(arg0, arg1, arg2) {
wasm.closure130_externref_shim(arg0, arg1, arg2);
wasm.closure400_externref_shim(arg0, arg1, arg2);
}
function __wbg_adapter_45(arg0, arg1, arg2) {
wasm.closure540_externref_shim(arg0, arg1, arg2);
function __wbg_adapter_47(arg0, arg1, arg2) {
wasm.closure612_externref_shim(arg0, arg1, arg2);
}
function __wbg_adapter_48(arg0, arg1, arg2) {
wasm.closure616_externref_shim(arg0, arg1, arg2);
function __wbg_adapter_50(arg0, arg1, arg2) {
wasm.closure700_externref_shim(arg0, arg1, arg2);
}
function __wbg_adapter_51(arg0, arg1, arg2) {
wasm.closure638_externref_shim(arg0, arg1, arg2);
}
function __wbg_adapter_54(arg0, arg1, arg2) {
wasm.closure647_externref_shim(arg0, arg1, arg2);
function __wbg_adapter_53(arg0, arg1, arg2) {
wasm.closure717_externref_shim(arg0, arg1, arg2);
}
async function __wbg_load(module, imports) {
@@ -386,13 +382,6 @@ function __wbg_get_imports() {
const ret = Array.from(arg0);
return ret;
};
imports.wbg.__wbg_getItem_561976eef304cebe = function() { return handleError(function (arg0, arg1, arg2, arg3) {
const ret = arg1.getItem(getStringFromWasm0(arg2, arg3));
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments) };
imports.wbg.__wbg_getRandomValues_bcb4912f16000dc4 = function() { return handleError(function (arg0, arg1) {
arg0.getRandomValues(arg1);
}, arguments) };
@@ -571,14 +560,15 @@ function __wbg_get_imports() {
const ret = arg0.__yew_listener_id;
return isLikeNone(ret) ? 0x100000001 : (ret) >>> 0;
};
imports.wbg.__wbg_localStorage_05bfbeeb8946b5bf = function() { return handleError(function (arg0) {
const ret = arg0.localStorage;
return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
}, arguments) };
imports.wbg.__wbg_location_54d35e8c85dcfb9c = function(arg0) {
const ret = arg0.location;
return ret;
};
imports.wbg.__wbg_log_c3d56bb0009edd6a = function(arg0, arg1) {
var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
wasm.__wbindgen_free(arg0, arg1 * 4, 4);
console.log(...v0);
};
imports.wbg.__wbg_message_142844ca2fe283e3 = function(arg0) {
const ret = arg0.message;
return ret;
@@ -924,24 +914,24 @@ function __wbg_get_imports() {
const ret = false;
return ret;
};
imports.wbg.__wbindgen_closure_wrapper280 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 131, __wbg_adapter_42);
imports.wbg.__wbindgen_closure_wrapper1214 = function(arg0, arg1, arg2) {
const ret = makeClosure(arg0, arg1, 613, __wbg_adapter_47);
return ret;
};
imports.wbg.__wbindgen_closure_wrapper5502 = function(arg0, arg1, arg2) {
const ret = makeClosure(arg0, arg1, 541, __wbg_adapter_45);
imports.wbg.__wbindgen_closure_wrapper1482 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 701, __wbg_adapter_50);
return ret;
};
imports.wbg.__wbindgen_closure_wrapper7256 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 617, __wbg_adapter_48);
imports.wbg.__wbindgen_closure_wrapper1516 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 718, __wbg_adapter_53);
return ret;
};
imports.wbg.__wbindgen_closure_wrapper7485 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 639, __wbg_adapter_51);
imports.wbg.__wbindgen_closure_wrapper681 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 401, __wbg_adapter_42);
return ret;
};
imports.wbg.__wbindgen_closure_wrapper7756 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 648, __wbg_adapter_54);
imports.wbg.__wbindgen_closure_wrapper683 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 401, __wbg_adapter_42);
return ret;
};
imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
Binary file not shown.
Binary file not shown.
@@ -1,30 +1,4 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--blur-amount: 10px;
--border-radius: 15px;
--glow-color: rgba(255, 255, 255, 0.3);
--message-bubble-color: rgba(255, 255, 255, 0.1);
--border-color: rgba(255, 255, 255, 0.1);
--shadow-color: rgba(0, 0, 0, 0.2);
}
html, body {
margin: 0;
padding: 0;
height: 100vh;
width: 100%;
overflow: hidden;
background: linear-gradient(135deg, #1a2a6c, #2a4858, #141E30);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
color: white;
}
.app-container {
.base-container {
height: 100vh;
width: 100vw;
display: flex;
@@ -32,17 +6,18 @@ html, body {
overflow: hidden;
}
.chat-container {
.app-container {
flex: 1;
margin: 0 2rem;
padding: 1rem;
display: flex;
flex-direction: column;
gap: 1rem;
width: 100%;
width: calc(100% - 4rem);
max-width: 1400px;
margin-left: auto;
margin-right: auto;
height: calc(100vh - 80px); /* Account for navbar height */
overflow: hidden;
}
@@ -60,6 +35,37 @@ html, body {
flex-direction: column;
gap: 1rem;
width: 100%;
min-height: 0; /* This is crucial for flex child scrolling */
}
.meme-license-container {
flex: 1;
overflow-y: auto;
padding: 0;
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
border-radius: 40px;
border: 1px solid var(--border-color);
box-shadow: 0 4px 24px var(--shadow-color);
display: flex;
flex-direction: row;
gap: 1rem;
width: 100%;
min-height: 0; /* This is crucial for flex child scrolling */
}
.ui-server-list {
height: 100%;
overflow-y: auto;
margin: 16px;
padding: 1rem;
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
border-radius: var(--border-radius);
border: 1px solid var(--border-color);
box-shadow: 0 4px 24px var(--shadow-color);
}
.message {
@@ -103,17 +109,17 @@ html, body {
.username {
font-weight: 600;
font-size: 0.9rem;
color: #fff;
color: var(--text-color, #fff);
text-shadow: 0 2px 4px var(--shadow-color);
}
.timestamp {
color: rgba(255, 255, 255, 0.6);
color: var(--text-secondary, rgba(255, 255, 255, 0.6));
font-size: 0.8rem;
}
.message-content {
color: rgba(255, 255, 255, 0.9);
color: var(--text-color, rgba(255, 255, 255, 0.9));
font-size: 0.95rem;
}
@@ -132,41 +138,68 @@ html, body {
.message-input {
flex: 1;
background: rgba(255, 255, 255, 0.1);
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1rem;
color: white;
background: var(--background-element, rgba(255, 255, 255, 0.1));
border: none;
padding: 0.4rem 1.5rem;
color: var(--text-color, white);
font-size: 1rem;
resize: vertical;
min-height: 1.5rem;
max-height: 150px;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
}
.message-input:hover, .message-input:focus {
border-color: var(--glow-color);
box-shadow: 0 0 15px var(--glow-color);
outline: none;
background-color: rgba(255, 255, 255, 0.3);
}
.send-button {
background: rgba(255, 255, 255, 0.1);
.ui-button {
background: var(--background-element, rgba(255, 255, 255, 0.1));
padding: 0.4rem 1.5rem;
color: var(--text-color, white);
font-size: 1rem;
cursor: pointer;
border: none;
transition: all 0.3s ease;
}
.ui-group {
display: flex;
flex-direction: row;
background: var(--background-element, rgba(255, 255, 255, 0.1));
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
width: 100%;
color: var(--text-color, white);
font-size: 1rem;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
overflow: hidden;
}
.ui-layout-horizontal {
display: flex;
flex-direction: row;
gap: 1rem;
margin: 0;
padding: 0;
width: 100%;
}
.ui-element-standalone {
background: var(--background-element, rgba(255, 255, 255, 0.1));
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1.5rem;
color: white;
color: var(--text-color, white);
font-size: 1rem;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
}
.send-button:hover {
border-color: var(--glow-color);
box-shadow: 0 0 15px var(--glow-color);
background: rgba(255, 255, 255, 0.2);
.ui-button:hover {
background-color: rgba(255, 255, 255, 0.3);
}
.navbar {
@@ -174,122 +207,113 @@ html, body {
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
background: rgba(255, 255, 255, 0.1);
background: var(--background-element, rgba(255, 255, 255, 0.1));
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
border: none;
border-bottom: 1px solid var(--border-color);
box-shadow: 0 4px 24px var(--shadow-color);
margin: 0;
box-shadow: 0 2px 8px var(--shadow-color);
position: relative;
z-index: 1000;
}
.nav-brand {
font-size: 1.5rem;
font-weight: bold;
color: white;
text-shadow: 0 2px 4px var(--shadow-color);
white-space: nowrap;
}
/* Login styles */
.login-container {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 90%;
max-width: 400px;
}
.login-form {
display: flex;
flex-direction: column;
gap: 1rem;
padding: 2rem;
background: rgba(255, 255, 255, 0.1);
.selector {
position: relative;
display: inline-block;
background: rgba(255, 255, 255, 0.01);
width: max-content;
/* background: var(--background-element, rgba(255, 255, 255, 0.1)); */
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
border-radius: var(--border-radius);
border: 1px solid var(--border-color);
box-shadow: 0 4px 24px var(--shadow-color);
}
.login-title {
font-size: 1.5rem;
font-weight: bold;
text-align: center;
color: white;
text-shadow: 0 2px 4px var(--shadow-color);
margin-bottom: 1rem;
}
.login-input {
background: rgba(255, 255, 255, 0.1);
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1rem;
color: white;
font-size: 1rem;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
}
.login-input:hover, .login-input:focus {
border-color: var(--glow-color);
box-shadow: 0 0 15px var(--glow-color);
outline: none;
}
.login-input::placeholder {
color: rgba(255, 255, 255, 0.6);
}
.login-button {
background: rgba(255, 255, 255, 0.1);
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1.5rem;
color: white;
color: var(--text-color, white);
font-size: 1rem;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
text-align: center;
text-decoration: none;
z-index: 1001;
}
.login-button:hover {
border-color: var(--glow-color);
box-shadow: 0 0 15px var(--glow-color);
background: rgba(255, 255, 255, 0.2);
}
.selector-items {
display: none;
position: absolute;
top: calc(100% + 1px);
left: -1px;
right: -1px;
.login-text {
color: rgba(255, 255, 255, 0.9);
text-align: center;
margin: 0.5rem 0;
}
.login-link {
color: white;
text-decoration: none;
transition: all 0.3s ease;
}
.login-link:hover {
text-shadow: 0 0 10px var(--glow-color);
}
.login-error {
background: rgba(255, 0, 0, 0.1);
border: 1px solid rgba(255, 0, 0, 0.3);
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1.5rem;
color: white;
font-size: 1rem;
text-align: center;
box-shadow: 0 4px 12px var(--shadow-color);
z-index: 1002;
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
box-shadow: 0 2px 8px var(--shadow-color);
overflow: hidden;
}
.selector:hover .selector-items {
display: block;
}
.selector-button {
background: none;
width: 100%;
padding: 0.4rem 1.5rem;
border: none;
color: var(--text-color, white);
font-size: 0.9rem;
cursor: pointer;
transition: all 0.2s ease;
text-align: center;
white-space: nowrap;
}
.selector-label {
background: none;
width: 100%;
padding: 0.4rem 1.5rem;
border: none;
color: var(--text-color, white);
font-size: 0.9rem;
cursor: pointer;
transition: all 0.2s ease;
text-align: center;
white-space: nowrap;
position: relative;
padding-right: 2rem;
border-radius: var(--border-radius);
}
.selector-label::after {
content: "▼";
position: absolute;
right: 0.8rem;
top: 50%;
transform: translateY(-50%);
font-size: 0.8rem;
opacity: 0.7;
}
.selector-button:hover {
color: var(--glow-color);
background-color: rgba(255, 255, 255, 0.1);
}
.selector-button.active {
color: var(--glow-color);
font-weight: 500;
}
/* Custom scrollbar */
+104
View File
@@ -0,0 +1,104 @@
/* Form styles */
.form-container {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 90%;
max-width: 400px;
}
.form-form {
display: flex;
flex-direction: column;
gap: 1rem;
padding: 2rem;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
border-radius: var(--border-radius);
border: 1px solid var(--border-color);
box-shadow: 0 4px 24px var(--shadow-color);
}
.form-title {
font-size: 1.5rem;
font-weight: bold;
text-align: center;
color: var(--text-color);
text-shadow: 0 2px 4px var(--shadow-color);
margin-bottom: 1rem;
}
.form-input {
background: rgba(255, 255, 255, 0.1);
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1rem;
color: var(--text-color);
font-size: 1rem;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
}
.form-input:hover, .form-input:focus {
border-color: var(--glow-color);
box-shadow: 0 0 15px var(--glow-color);
outline: none;
}
.form-input::placeholder {
color: var(--text-color);
text-align: center;
}
.form-button {
background: rgba(255, 255, 255, 0.1);
border: 1px solid var(--border-color);
border-radius: var(--border-radius);
padding: 0.8rem 1.5rem;
color: var(--text-color);
font-size: 1rem;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 2px 8px var(--shadow-color);
text-align: center;
text-decoration: none;
}
.form-button:hover {
border-color: var(--glow-color);
box-shadow: 0 0 15px var(--glow-color);
background: rgba(255, 255, 255, 0.2);
}
.form-text {
color: var(--text-color);
text-align: center;
margin: 0.5rem 0;
}
.form-link {
color: var(--text-color);
text-decoration: none;
transition: all 0.3s ease;
}
.form-link:hover {
text-shadow: 0 0 10px var(--glow-color);
}
.form-error {
background: rgba(255, 0, 0, 0.1);
border: 1px solid rgba(255, 0, 0, 0.3);
border-radius: var(--border-radius);
padding: 0.8rem 1.5rem;
color: var(--text-color);
font-size: 1rem;
text-align: center;
backdrop-filter: blur(var(--blur-amount));
-webkit-backdrop-filter: blur(var(--blur-amount));
box-shadow: 0 2px 8px var(--shadow-color);
}
+45
View File
@@ -0,0 +1,45 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
--blur-amount: 10px;
--border-radius: 15px;
--shadow-color: rgba(0, 0, 0, 0.4);
}
*[theme="default"] {
--background: linear-gradient(135deg, #1a2a6c, #2a4858, #141E30);
--glow-color: rgba(255, 255, 255, 0.3);
--message-bubble-color: rgba(255, 255, 255, 0.1);
--border-color: rgba(255, 255, 255, 0.1);
--text-color: #ffffff;
}
*[theme="light"] {
--background: #ffffff;
--glow-color: rgba(100, 149, 237, 0.3);
--message-bubble-color: rgba(100, 149, 237, 0.1);
--border-color: rgba(100, 149, 237, 0.2);
--text-color: #000000;
}
*[theme="dark"] {
--background: linear-gradient(135deg, #121212, #1a1a1a, #232323);
--glow-color: rgba(147, 112, 219, 0.4);
--message-bubble-color: rgba(147, 112, 219, 0.15);
--border-color: rgba(255, 255, 255, 0.1);
--text-color: #ffffff;
}
html, body {
margin: 0;
padding: 0;
height: 100vh;
width: 100%;
overflow: hidden;
background: var(--background);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
color: var(--text-color, white);
}
+7 -5
View File
@@ -5,14 +5,16 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chat App</title>
<link rel="stylesheet" href="/styles-a0f557a2c187e84.css" integrity="sha384&#x2D;IY1p3eyyGzgt1dx8oous21mdUqg5fUoBJDo0cnEt0Dzc0zNGKH5Z&#x2F;fRO8S&#x2F;o&#x2F;z&#x2B;X"/>
<link rel="modulepreload" href="/chatapp-frontend-2d9721327d80d1a4.js" crossorigin=anonymous integrity="sha384-NUMxiXeKeAJvxebMe8KYjMxliEtODVyz5/Z481fZRPDW2uYnad9e2ra9tGdLMFpa"><link rel="preload" href="/chatapp-frontend-2d9721327d80d1a4_bg.wasm" crossorigin=anonymous integrity="sha384-2mAsbkb1UNVlDtYPNO/P2i3j3N0eQcSD4sqqXRdf0Y5CtCnprvY5LjoqgSeLoJul" as="fetch" type="application/wasm"></head>
<link rel="stylesheet" href="/components-c4a55600848b6fb1.css" integrity="sha384&#x2D;Mmjo1ZomS0FElJau47rDNd04eUSEv&#x2B;T87iRK8eeVFIde&#x2B;LiwQrTeAxKj59XzYmS0"/>
<link rel="stylesheet" href="/global-7cfadbee4d5b1bff.css" integrity="sha384&#x2D;GWbuMob1xic&#x2F;G9k3FZveeVrVpzetubRiLpE&#x2B;4CtBpx5J2DZNCanPoio&#x2B;UXP2JwLS"/>
<link rel="stylesheet" href="/form-3a77ed11d71d542d.css" integrity="sha384&#x2D;lGHpEuixlt7WvJpZs7XP&#x2F;wQBg2&#x2F;v7C84a6g4l&#x2B;T1HkuUXDhYhqa5QqVli&#x2B;HKVWUi"/>
<link rel="modulepreload" href="/chatapp-frontend-2879b3175985551e.js" crossorigin=anonymous integrity="sha384-xlUUO7QtKu3SefdFpX08aFCGPCxeKLHtvHmbI/KU3AQFTKDOBLeNcVN9mu7mT68u"><link rel="preload" href="/chatapp-frontend-2879b3175985551e_bg.wasm" crossorigin=anonymous integrity="sha384-+mwYLmuuW0jPSy0jqOY+Qya/mYwxANqWd3CYV11ajVWiHIDvr4gfJOZ/oZnbdK8t" as="fetch" type="application/wasm"></head>
<body>
<div id="root"></div>
<script type="module" nonce="2WTPFE+DH5nuGYeLSROE+A==">
import init, * as bindings from '/chatapp-frontend-2d9721327d80d1a4.js';
const wasm = await init('/chatapp-frontend-2d9721327d80d1a4_bg.wasm');
<script type="module" nonce="0K6lbx5zqmDuxEdTEHz1Eg==">
import init, * as bindings from '/chatapp-frontend-2879b3175985551e.js';
const wasm = await init('/chatapp-frontend-2879b3175985551e_bg.wasm');
window.wasmBindings = bindings;