Commit e3f149ca authored by edy's avatar edy

style(ui): refine left sidebar navigation

parent 244702c4
Pipeline #18449 failed
......@@ -67,14 +67,20 @@ export function AppSidebar({
}: AppSidebarProps) {
const topContent = (
<>
<nav className="nav-list">
<nav className="nav-list" aria-label="主导航">
{[
{ id: "chat" as const, label: "对话" },
{ id: "knowledge" as const, label: ui.knowledge },
{ id: "plugins" as const, label: ui.plugins },
{ id: "settings" as const, label: ui.settings }
].map((item) => (
<button key={item.id} type="button" className={"nav-item app-no-drag" + (viewMode === item.id ? " active" : "")} onClick={() => onNavSelection(item.id)}>
<button
key={item.id}
type="button"
className={"nav-item app-no-drag" + (viewMode === item.id ? " active" : "")}
aria-current={viewMode === item.id ? "page" : undefined}
onClick={() => onNavSelection(item.id)}
>
<span className="nav-item-icon" aria-hidden="true">
{navIcon(item.id)}
</span>
......
......@@ -140,7 +140,7 @@ export function ExpertTree({
const hasExperts = categoryExperts.length > 0
return (
<div key={category.id} className="expert-category-item expert-tree-category">
<div key={category.id} className={"expert-category-item expert-tree-category" + (isExpanded && hasExperts ? " expanded" : "")}>
<button
type="button"
className="expert-category-header expert-tree-category-trigger app-no-drag"
......
......@@ -45,7 +45,13 @@ export function SessionList({
<div className="sidebar-session-list">
{sessions.map((session, index) => (
<div key={session.id} className={"sidebar-session-card" + (activeSessionId === session.id ? " active" : "")}>
<button type="button" className="sidebar-session-main app-no-drag" disabled={projectActionPending} onClick={() => onOpenSession(session.id)}>
<button
type="button"
className="sidebar-session-main app-no-drag"
aria-current={activeSessionId === session.id ? "true" : undefined}
disabled={projectActionPending}
onClick={() => onOpenSession(session.id)}
>
<strong>{sessionTitles[session.id] ?? formatSessionTitle(session.title, index)}</strong>
</button>
{sessions.length > 1 ? (
......@@ -57,7 +63,9 @@ export function SessionList({
disabled={projectActionPending || (sendPhase !== "idle" && activeStreamSessionId === session.id)}
onClick={() => onCloseSession(session.id)}
>
x
<svg viewBox="0 0 16 16" aria-hidden="true" focusable="false">
<path d="M4.25 4.25 11.75 11.75M11.75 4.25 4.25 11.75" />
</svg>
</button>
) : null}
</div>
......
......@@ -173,12 +173,12 @@
.conversation-shell .sidebar-bottom {
min-height: 0;
display: flex;
flex-direction: column;
overflow-y: auto;
display: grid;
grid-template-rows: minmax(0, 55fr) minmax(120px, 45fr);
overflow: hidden;
overflow-x: hidden;
gap: 14px;
padding-right: 4px;
padding-right: 0;
scrollbar-width: thin;
scrollbar-color: rgba(94, 164, 216, 0.44) transparent;
}
......@@ -208,18 +208,15 @@
}
.conversation-shell .sidebar-experts-entry {
flex: 0 0 calc(55% - 6px);
min-height: calc(55% - 6px);
min-height: 0;
display: grid;
grid-template-rows: auto auto;
grid-template-rows: auto minmax(0, 1fr);
gap: 10px;
align-content: start;
overflow: visible;
overflow: hidden;
}
.conversation-shell .sidebar-session-section {
flex: 0 0 calc(45% - 6px);
min-height: calc(45% - 6px);
min-height: 0;
display: grid;
grid-template-rows: auto minmax(0, 1fr);
overflow: hidden;
......@@ -250,14 +247,33 @@
.conversation-shell .sidebar-expert-scroll {
min-height: 0;
overflow-y: visible;
overflow-y: auto;
overflow-x: hidden;
padding-right: 0;
padding-right: 2px;
scrollbar-width: thin;
scrollbar-color: rgba(94, 164, 216, 0.44) transparent;
}
.conversation-shell .sidebar-expert-scroll::-webkit-scrollbar {
width: 4px;
}
.conversation-shell .sidebar-expert-scroll::-webkit-scrollbar-track {
background: transparent;
}
.conversation-shell .sidebar-expert-scroll::-webkit-scrollbar-thumb {
border-radius: 999px;
background: rgba(94, 164, 216, 0.44);
}
.conversation-shell .nav-item:focus-visible,
.conversation-shell .conversation-new-session:focus-visible,
.conversation-shell .expert-category-header:focus-visible,
.conversation-shell .expert-category-expert-item:focus-visible {
outline: 2px solid rgba(21, 132, 209, 0.42);
.conversation-shell .expert-category-expert-item:focus-visible,
.conversation-shell .sidebar-session-main:focus-visible,
.conversation-shell .sidebar-session-close:focus-visible {
outline: 2px solid rgba(21, 132, 209, 0.58);
outline-offset: 2px;
}
......@@ -273,7 +289,7 @@
}
.conversation-shell .sidebar-session-list::-webkit-scrollbar {
width: 2px;
width: 4px;
opacity: 0;
}
......@@ -299,10 +315,22 @@
}
.conversation-shell .expert-category-item {
position: relative;
border-radius: 16px;
border: 1px solid rgba(173, 214, 239, 0.48);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(235, 247, 255, 0.62));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 12px 22px rgba(85, 147, 192, 0.08);
overflow: hidden;
}
.conversation-shell .expert-category-item::before {
content: "";
position: absolute;
inset: 0 auto 0 0;
width: 3px;
background: linear-gradient(180deg, #86d7ff 0%, #1490db 100%);
opacity: 0;
transition: opacity 180ms ease;
}
.conversation-shell .expert-category-item:hover {
......@@ -310,6 +338,15 @@
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88), 0 14px 26px rgba(78, 145, 194, 0.12);
}
.conversation-shell .expert-category-item.expanded {
border-color: rgba(84, 166, 225, 0.72);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(222, 241, 255, 0.72));
}
.conversation-shell .expert-category-item.expanded::before {
opacity: 1;
}
.conversation-shell .expert-category-header {
min-height: 44px;
padding: 0 12px;
......@@ -365,9 +402,9 @@
}
.conversation-shell .sidebar-session-card {
position: relative;
min-height: 54px;
height: 54px;
flex: 0 0 54px;
align-self: start;
padding: 4px;
border-radius: 18px;
......@@ -376,6 +413,17 @@
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 12px 24px rgba(66, 132, 177, 0.12);
}
.conversation-shell .sidebar-session-card::before {
content: "";
position: absolute;
inset: 8px auto 8px 0;
width: 3px;
border-radius: 999px;
background: #1490db;
opacity: 0;
transition: opacity 180ms ease;
}
.conversation-shell .sidebar-session-card:hover {
background: linear-gradient(180deg, rgba(251, 254, 255, 0.9), rgba(206, 233, 249, 0.8));
border-color: rgba(109, 178, 223, 0.6);
......@@ -388,9 +436,13 @@
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94), 0 18px 30px rgba(56, 123, 170, 0.2);
}
.conversation-shell .sidebar-session-card.active::before {
opacity: 1;
}
.conversation-shell .sidebar-session-main {
min-height: 46px;
padding: 0 12px;
padding: 0 8px 0 12px;
border-radius: 14px;
color: var(--conversation-ink);
}
......@@ -400,9 +452,26 @@
}
.conversation-shell .sidebar-session-close {
display: inline-grid;
place-items: center;
background: rgba(255, 255, 255, 0.9);
box-shadow: inset 0 0 0 1px rgba(167, 209, 236, 0.72);
color: #64809d;
opacity: 0.58;
}
.conversation-shell .sidebar-session-close svg {
width: 14px;
height: 14px;
fill: none;
stroke: currentColor;
stroke-width: 1.8;
stroke-linecap: round;
}
.conversation-shell .sidebar-session-card:hover .sidebar-session-close,
.conversation-shell .sidebar-session-card:focus-within .sidebar-session-close {
opacity: 1;
}
.conversation-shell .sidebar-session-close:hover:not(:disabled) {
......
......@@ -48,7 +48,7 @@
.shell.openclaw-theme textarea:focus-visible,
.shell.openclaw-theme select:focus-visible,
.shell.openclaw-theme a:focus-visible {
outline: 2px solid rgba(37, 99, 235, 0.35);
outline: 2px solid rgba(37, 99, 235, 0.56);
outline-offset: 2px;
}
......@@ -57,8 +57,8 @@
height: 100vh;
overflow: hidden;
background:
radial-gradient(circle at 24px 84px, rgba(25, 182, 217, 0.2), transparent 36%),
linear-gradient(180deg, #d8eaff 0%, #c8dfff 48%, #bed8f8 100%);
linear-gradient(180deg, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0)),
linear-gradient(180deg, #dbeafe 0%, #c7ddf8 100%);
border-right: 1px solid rgba(37, 99, 235, 0.34);
border-bottom: 0;
box-shadow:
......@@ -91,33 +91,33 @@
.shell.openclaw-theme .conversation-sidebar-layout {
isolation: isolate;
grid-template-rows: auto minmax(0, 1fr);
gap: 14px;
padding: 18px 16px;
gap: 12px;
padding: 16px 14px;
}
.shell.openclaw-theme .sidebar-top {
position: relative;
z-index: 1;
gap: 12px;
gap: 10px;
}
.shell.openclaw-theme .nav-list {
grid-template-columns: 1fr;
gap: 10px;
gap: 6px;
}
.shell.openclaw-theme .nav-item {
position: relative;
min-height: 46px;
padding: 0 14px;
border-radius: 16px;
border: 1px solid transparent;
background: linear-gradient(135deg, rgba(242, 250, 255, 0.82), rgba(212, 236, 251, 0.74));
min-height: 42px;
padding: 0 12px 0 14px;
border-radius: 10px;
border: 1px solid rgba(96, 165, 250, 0.18);
background: rgba(255, 255, 255, 0.36);
color: #2e516c;
justify-content: flex-start;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 10px 22px rgba(63, 128, 173, 0.12);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
box-shadow: none;
backdrop-filter: none;
-webkit-backdrop-filter: none;
transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}
......@@ -131,26 +131,23 @@
}
.shell.openclaw-theme .nav-item:hover:not(.active) {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.86), rgba(228, 244, 255, 0.78));
border-color: rgba(96, 165, 250, 0.34);
background: rgba(255, 255, 255, 0.62);
border-color: rgba(96, 165, 250, 0.42);
color: var(--revamp-blue-strong);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 12px 24px rgba(89, 150, 194, 0.12);
box-shadow: none;
}
.shell.openclaw-theme .nav-item.active {
background: linear-gradient(135deg, rgba(248, 253, 255, 0.96), rgba(219, 234, 254, 0.88));
background: #ffffff;
border-color: var(--revamp-blue-border);
color: var(--revamp-blue-strong);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94), 0 16px 30px rgba(37, 99, 235, 0.14);
box-shadow:
inset 4px 0 0 var(--revamp-blue),
0 8px 18px rgba(37, 99, 235, 0.12);
}
.shell.openclaw-theme .nav-item.active::before {
content: "";
position: absolute;
inset: 7px auto 7px 0;
width: 3px;
border-radius: 999px;
background: var(--revamp-blue);
content: none;
}
.shell.openclaw-theme .conversation-sidebar-action {
......@@ -158,37 +155,37 @@
flex: 0 0 auto;
}
.shell.openclaw-theme .conversation-sidebar-action .conversation-new-session {
.shell.openclaw-theme .sidebar-new-session.conversation-new-session {
width: 100%;
min-height: 46px;
justify-content: flex-start;
min-height: 44px;
justify-content: center;
padding: 0 16px;
border-radius: 16px;
border-color: rgba(96, 165, 250, 0.34);
background: linear-gradient(135deg, rgba(245, 252, 255, 0.92), rgba(219, 234, 254, 0.88));
color: var(--revamp-blue-strong);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86), 0 16px 28px rgba(37, 99, 235, 0.12);
border-radius: 10px;
border-color: rgba(29, 78, 216, 0.18);
background: linear-gradient(135deg, #2563eb, #0f6eea);
color: #ffffff;
box-shadow: 0 10px 22px rgba(37, 99, 235, 0.24);
transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}
.shell.openclaw-theme .conversation-new-session:hover:not(:disabled) {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(224, 237, 255, 0.92));
border-color: rgba(96, 165, 250, 0.48);
color: var(--revamp-blue-strong);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 18px 30px rgba(37, 99, 235, 0.14);
.shell.openclaw-theme .sidebar-new-session.conversation-new-session:hover:not(:disabled) {
background: linear-gradient(135deg, #1d4ed8, #075bd8);
border-color: rgba(29, 78, 216, 0.32);
color: #ffffff;
box-shadow: 0 12px 24px rgba(37, 99, 235, 0.28);
}
.shell.openclaw-theme .conversation-new-session-plus {
width: 22px;
height: 22px;
width: 20px;
height: 20px;
display: inline-grid;
place-items: center;
border-radius: 999px;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(219, 234, 254, 0.9));
color: var(--revamp-cyber-blue);
background: rgba(255, 255, 255, 0.18);
color: #ffffff;
font-size: 18px;
line-height: 1;
box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.28);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}
.shell.openclaw-theme .conversation-new-session-label {
......@@ -200,19 +197,18 @@
z-index: 1;
min-height: 0;
display: grid;
grid-template-rows: minmax(0, 55fr) minmax(120px, 45fr);
gap: 14px;
grid-template-rows: minmax(0, 56fr) minmax(150px, 44fr);
gap: 12px;
overflow: hidden;
padding-right: 0;
}
.shell.openclaw-theme .conversation-new-session,
.shell.openclaw-theme .sidebar-experts-entry,
.shell.openclaw-theme .sidebar-session-section,
.shell.openclaw-theme .expert-category-item,
.shell.openclaw-theme .sidebar-session-card {
border-color: var(--revamp-border);
background: rgba(255, 255, 255, 0.62);
border-color: rgba(59, 130, 246, 0.22);
background: rgba(255, 255, 255, 0.78);
box-shadow: none;
}
......@@ -220,13 +216,13 @@
min-height: 0;
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 10px;
gap: 8px;
overflow: hidden;
padding: 14px;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.68), rgba(231, 242, 255, 0.5)),
radial-gradient(circle at 88% 0%, rgba(25, 182, 217, 0.16), transparent 42%);
border-color: rgba(59, 130, 246, 0.26);
padding: 12px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.82);
border-color: rgba(59, 130, 246, 0.32);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}
.shell.openclaw-theme .sidebar-session-section {
......@@ -234,24 +230,43 @@
display: grid;
grid-template-rows: auto minmax(0, 1fr);
overflow: hidden;
padding: 14px;
padding: 12px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.82);
border-color: rgba(59, 130, 246, 0.32);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}
.shell.openclaw-theme .sidebar-digital-workers-title {
min-height: 34px;
min-height: 28px;
align-items: center;
padding-bottom: 8px;
border-bottom: 1px solid rgba(59, 130, 246, 0.16);
letter-spacing: 0;
}
.shell.openclaw-theme .sidebar-section-title {
color: #14345f;
color: #0f2f59;
font-size: 13px;
font-weight: 700;
font-weight: 800;
}
.shell.openclaw-theme .sidebar-section-label,
.shell.openclaw-theme .sidebar-session-main span {
color: #6d87a0;
color: #486985;
}
.shell.openclaw-theme .sidebar-section-head-subtle {
min-height: 28px;
align-items: center;
padding-bottom: 8px;
border-bottom: 1px solid rgba(59, 130, 246, 0.16);
}
.shell.openclaw-theme .sidebar-section-label {
font-size: 13px;
font-weight: 800;
color: #0f2f59;
}
.shell.openclaw-theme .expert-category-item:hover,
......@@ -266,7 +281,7 @@
}
.shell.openclaw-theme .expert-category-list {
gap: 8px;
gap: 7px;
}
.shell.openclaw-theme .sidebar-expert-scroll,
......@@ -284,7 +299,7 @@
.shell.openclaw-theme .sidebar-session-list {
display: grid;
gap: 10px;
gap: 8px;
align-content: start;
padding-right: 2px;
}
......@@ -305,17 +320,20 @@
background: rgba(94, 164, 216, 0.44);
}
.shell.openclaw-theme .sidebar-expert-scroll:hover::-webkit-scrollbar-thumb,
.shell.openclaw-theme .sidebar-expert-scroll:focus-within::-webkit-scrollbar-thumb,
.shell.openclaw-theme .sidebar-session-list:hover::-webkit-scrollbar-thumb,
.shell.openclaw-theme .sidebar-session-list:focus-within::-webkit-scrollbar-thumb {
background: rgba(37, 99, 235, 0.42);
}
.shell.openclaw-theme .expert-category-item {
position: relative;
overflow: hidden;
border-radius: 15px;
border-color: rgba(59, 130, 246, 0.28);
background:
linear-gradient(145deg, rgba(255, 255, 255, 0.76), rgba(222, 239, 255, 0.58)),
radial-gradient(circle at 100% 0%, rgba(25, 182, 217, 0.14), transparent 46%);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.72),
0 10px 22px rgba(37, 99, 235, 0.07);
border-radius: 10px;
border-color: rgba(59, 130, 246, 0.2);
background: #ffffff;
box-shadow: none;
transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease;
}
......@@ -331,31 +349,44 @@
.shell.openclaw-theme .expert-category-item:hover {
border-color: rgba(37, 99, 235, 0.44);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.82),
0 14px 26px rgba(37, 99, 235, 0.12),
0 0 0 1px rgba(25, 182, 217, 0.08);
box-shadow: 0 8px 16px rgba(37, 99, 235, 0.08);
}
.shell.openclaw-theme .expert-category-item:hover::before {
opacity: 1;
}
.shell.openclaw-theme .expert-category-item.expanded {
border-color: rgba(37, 99, 235, 0.52);
background: #f8fbff;
box-shadow: 0 8px 16px rgba(37, 99, 235, 0.08);
}
.shell.openclaw-theme .expert-category-item.expanded::before {
opacity: 1;
}
.shell.openclaw-theme .expert-category-header {
min-height: 42px;
padding: 0 12px;
min-height: 40px;
padding: 0 10px 0 12px;
transition: background 180ms ease, color 180ms ease;
}
.shell.openclaw-theme .expert-category-item.expanded .expert-category-header {
background: #eaf2ff;
}
.shell.openclaw-theme .expert-category-icon,
.shell.openclaw-theme .expert-category-toggle {
color: var(--revamp-cyber-blue);
}
.shell.openclaw-theme .expert-category-icon {
border-radius: 10px;
background: rgba(37, 99, 235, 0.08);
box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.12);
width: 24px;
height: 24px;
border-radius: 8px;
background: rgba(37, 99, 235, 0.1);
box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.14);
}
.shell.openclaw-theme .expert-category-name {
......@@ -370,30 +401,27 @@
}
.shell.openclaw-theme .expert-category-content {
margin: 0 7px 7px;
border: 1px solid rgba(59, 130, 246, 0.18);
border-radius: 13px;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.66), rgba(226, 242, 255, 0.54)),
radial-gradient(circle at 10% 0%, rgba(25, 182, 217, 0.1), transparent 42%);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.68),
0 12px 24px rgba(15, 111, 234, 0.08);
margin: 0;
border: 0;
border-top: 1px solid rgba(59, 130, 246, 0.16);
border-radius: 0;
background: rgba(241, 247, 255, 0.78);
box-shadow: none;
transform-origin: top center;
animation: expertPanelReveal 220ms cubic-bezier(0.2, 0.82, 0.2, 1);
}
.shell.openclaw-theme .expert-category-experts {
gap: 6px;
padding: 7px;
gap: 5px;
padding: 7px 7px 8px 10px;
}
.shell.openclaw-theme .expert-category-expert-item {
min-height: 36px;
padding: 7px 10px 7px 12px;
border-radius: 11px;
border-color: rgba(59, 130, 246, 0.16);
background: rgba(255, 255, 255, 0.68);
min-height: 34px;
padding: 6px 9px 6px 12px;
border-radius: 8px;
border-color: rgba(59, 130, 246, 0.14);
background: rgba(255, 255, 255, 0.74);
color: #31516f;
transition: background 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
......@@ -410,7 +438,9 @@
background: #ffffff;
border-color: var(--revamp-blue-border);
color: var(--revamp-blue-strong);
box-shadow: inset 3px 0 0 rgba(37, 99, 235, 0.78);
box-shadow:
inset 4px 0 0 rgba(37, 99, 235, 0.86),
0 10px 20px rgba(37, 99, 235, 0.1);
}
.shell.openclaw-theme .expert-category-expert-item.active {
......@@ -420,6 +450,51 @@
0 10px 20px rgba(37, 99, 235, 0.12);
}
.shell.openclaw-theme .sidebar-session-card {
height: 50px;
min-height: 50px;
padding: 3px;
border-radius: 10px;
border-color: rgba(59, 130, 246, 0.2);
background: #ffffff;
box-shadow: none;
}
.shell.openclaw-theme .sidebar-session-card:hover {
border-color: rgba(37, 99, 235, 0.42);
background: #f8fbff;
box-shadow: 0 8px 16px rgba(37, 99, 235, 0.08);
}
.shell.openclaw-theme .sidebar-session-card.active {
border-color: rgba(37, 99, 235, 0.58);
background: #ffffff;
box-shadow:
inset 4px 0 0 var(--revamp-blue),
0 10px 18px rgba(37, 99, 235, 0.1);
}
.shell.openclaw-theme .sidebar-session-main {
min-height: 42px;
padding: 0 8px 0 14px;
border-radius: 8px;
}
.shell.openclaw-theme .sidebar-session-main strong {
color: #12355f;
font-size: 13px;
line-height: 1.35;
}
.shell.openclaw-theme .sidebar-session-close {
width: 24px;
height: 24px;
color: #64748b;
opacity: 0.72;
background: #f1f5f9;
box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.26);
}
.shell.openclaw-theme .expert-category-expert-icon {
color: currentColor;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment