feat: add invite code validity controls

- Add invite code starts/expires fields across contracts, API, Spacetime bindings, and admin UI
- Enforce pending/expired invite code redemption behavior and expose admin status
- Add admin write-operation confirmation guard and documentation
- Add invite code contract/runtime tests
This commit is contained in:
2026-05-04 12:29:33 +08:00
parent 1142e90a35
commit 9f3e34e81a
27 changed files with 1465 additions and 97 deletions

View File

@@ -457,6 +457,47 @@ button:disabled {
font-weight: 700;
}
.admin-confirm-backdrop {
position: fixed;
inset: 0;
z-index: 80;
display: grid;
place-items: center;
background: rgba(23, 33, 43, 0.42);
padding: 16px;
}
.admin-confirm-panel {
display: grid;
width: min(100%, 420px);
gap: 16px;
border: 1px solid #d8e2e8;
border-radius: 10px;
background: #ffffff;
box-shadow: 0 22px 60px rgba(23, 33, 43, 0.24);
padding: 18px;
}
.admin-confirm-warning {
border: 1px solid #efc894;
border-radius: 8px;
color: #8a5a1b;
background: #fffaf3;
padding: 10px 12px;
font-size: 13px;
font-weight: 650;
}
.admin-confirm-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
}
.admin-confirm-actions button {
min-width: 92px;
}
.admin-primary-button {
color: #ffffff;
background: #126e82;
@@ -575,6 +616,11 @@ button:disabled {
background: #e6f5ed;
}
.admin-status-pending {
color: #8a5a1b;
background: #fff4df;
}
.admin-status-error {
color: #8a2f2f;
background: #fff1ef;
@@ -755,6 +801,14 @@ button:disabled {
padding: 16px;
}
.admin-confirm-panel {
padding: 16px;
}
.admin-confirm-actions {
display: grid;
}
.admin-login-brand h1,
.admin-page-heading h2 {
font-size: 22px;