Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 33 additions & 24 deletions app/components/ActivityTicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,31 +37,40 @@ export function ActivityTicker({ className }: ActivityTickerProps) {
event: (typeof events)[number],
keyPrefix: string,
idx: number,
) => (
<div
key={`${keyPrefix}-${event.name}-${idx}`}
className="flex items-center gap-4 whitespace-nowrap"
>
{idx === lastEventIndex ? (
<span className="bg-[#CC0000] text-white px-2 py-0.5 font-mono text-[10px] uppercase tracking-tighter shrink-0">
Update
</span>
) : null}
<a
href={event.discord}
target="_blank"
rel="noopener noreferrer"
className="font-sans text-xs font-bold uppercase tracking-widest hover:text-[#CC0000]"
) => {
let href = event.discord;
if (event.deprecated) {
href =
event.playback ||
"https://involutionhell.com/docs/jobs/event-keynote/event-takeway";
}

return (
<div
key={`${keyPrefix}-${event.name}-${idx}`}
className="flex items-center gap-4 whitespace-nowrap"
>
{event.name} —{" "}
{event.deprecated ? "Archives Available" : "Event Active"}
</a>
<span className="text-neutral-400 font-mono text-[10px]">&bull;</span>
<span className="font-mono text-[10px] text-neutral-500 uppercase">
Edition 1.0.0
</span>
</div>
);
{idx === lastEventIndex ? (
<span className="bg-[#CC0000] text-white px-2 py-0.5 font-mono text-[10px] uppercase tracking-tighter shrink-0">
Update
</span>
) : null}
<a
href={href}
target="_blank"
rel="noopener noreferrer"
className="font-sans text-xs font-bold uppercase tracking-widest hover:text-[#CC0000]"
>
{event.name} —{" "}
{event.deprecated ? "Archives Available" : "Event Active"}
</a>
<span className="text-neutral-400 font-mono text-[10px]">&bull;</span>
<span className="font-mono text-[10px] text-neutral-500 uppercase">
Edition 1.0.0
</span>
</div>
);
};

return (
<div
Expand Down
6 changes: 2 additions & 4 deletions app/components/float-window/FloatWindow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ export function FloatWindow() {
const pathname = usePathname();
const [isCollapsed, setIsCollapsed] = useState(false);
const [isDismissed, setIsDismissed] = useState(false);
const [isHovered, setIsHovered] = useState(false);

// 仅在首页 (/) 可见
const isHomePage = pathname === "/";
Expand Down Expand Up @@ -73,7 +72,8 @@ export function FloatWindow() {
const handleDismiss = useCallback(() => setIsDismissed(true), []);
const handleToggle = useCallback(() => setIsCollapsed((prev) => !prev), []);

if (!isHomePage || isDismissed || !latestEvent) return null;
if (!isHomePage || isDismissed || !latestEvent || latestEvent.deprecated)
return null;

const currentEvent = latestEvent;

Expand All @@ -91,8 +91,6 @@ export function FloatWindow() {
)}
style={position ? { left: position.x, top: position.y } : undefined}
onPointerDown={handlePointerDown}
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
>
{/* 极简折叠状态 */}
{isCollapsed ? (
Expand Down
Loading