Merge terry-staging into main
All checks were successful
Deploy to Frontend Servers / deploy (push) Successful in 27s
All checks were successful
Deploy to Frontend Servers / deploy (push) Successful in 27s
This commit is contained in:
@@ -306,7 +306,7 @@ export function MessageInlineVideo({
|
||||
) : null}
|
||||
|
||||
<div
|
||||
className={`absolute inset-x-0 bottom-0 z-20 flex items-center bg-gradient-to-t from-black/85 via-black/45 to-transparent leading-none text-white ${t.bar}`}
|
||||
className={`message-stream-noncopyable-control absolute inset-x-0 bottom-0 z-20 flex items-center bg-gradient-to-t from-black/85 via-black/45 to-transparent leading-none text-white ${t.bar}`}
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
>
|
||||
<button
|
||||
|
||||
@@ -137,6 +137,13 @@ header button {
|
||||
}
|
||||
}
|
||||
|
||||
.message-stream-noncopyable-control,
|
||||
.message-stream-noncopyable-control * {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.message-stream-copyable-text,
|
||||
.message-stream-copyable-text * {
|
||||
-webkit-user-select: text;
|
||||
|
||||
@@ -65,6 +65,10 @@ function navClassName(active: boolean) {
|
||||
].join(" ");
|
||||
}
|
||||
|
||||
function mobileMenuNavClassName(active: boolean) {
|
||||
return `${navClassName(active)} w-fit justify-self-start`;
|
||||
}
|
||||
|
||||
const dropdownAnimationClass = "ark-header-popover-enter";
|
||||
const headerMenuAnimationClass = "ark-header-menu-enter";
|
||||
|
||||
@@ -633,7 +637,7 @@ export function PublicLayout() {
|
||||
</div>
|
||||
<Link
|
||||
to="/browse"
|
||||
className={navClassName(na("browseAll"))}
|
||||
className={mobileMenuNavClassName(na("browseAll"))}
|
||||
aria-current={na("browseAll") ? "page" : undefined}
|
||||
onClick={() => setOpen(false)}
|
||||
>
|
||||
@@ -641,7 +645,7 @@ export function PublicLayout() {
|
||||
</Link>
|
||||
<Link
|
||||
to="/categories"
|
||||
className={navClassName(na("categories"))}
|
||||
className={mobileMenuNavClassName(na("categories"))}
|
||||
aria-current={na("categories") ? "page" : undefined}
|
||||
onClick={() => setOpen(false)}
|
||||
>
|
||||
@@ -649,7 +653,7 @@ export function PublicLayout() {
|
||||
</Link>
|
||||
<Link
|
||||
to="/official-recommendations"
|
||||
className={navClassName(na("browseRecommended"))}
|
||||
className={mobileMenuNavClassName(na("browseRecommended"))}
|
||||
aria-current={na("browseRecommended") ? "page" : undefined}
|
||||
onClick={() => setOpen(false)}
|
||||
>
|
||||
@@ -657,7 +661,7 @@ export function PublicLayout() {
|
||||
</Link>
|
||||
<Link
|
||||
to="/browse?sort=latest"
|
||||
className={navClassName(na("browseLatest"))}
|
||||
className={mobileMenuNavClassName(na("browseLatest"))}
|
||||
aria-current={na("browseLatest") ? "page" : undefined}
|
||||
onClick={() => setOpen(false)}
|
||||
>
|
||||
@@ -665,7 +669,7 @@ export function PublicLayout() {
|
||||
</Link>
|
||||
<Link
|
||||
to={popularHref}
|
||||
className={navClassName(na("browsePopular"))}
|
||||
className={mobileMenuNavClassName(na("browsePopular"))}
|
||||
aria-current={na("browsePopular") ? "page" : undefined}
|
||||
onClick={() => setOpen(false)}
|
||||
>
|
||||
@@ -673,7 +677,7 @@ export function PublicLayout() {
|
||||
</Link>
|
||||
<Link
|
||||
to="/favorites"
|
||||
className={navClassName(na("favorites"))}
|
||||
className={mobileMenuNavClassName(na("favorites"))}
|
||||
aria-current={na("favorites") ? "page" : undefined}
|
||||
onClick={() => setOpen(false)}
|
||||
>
|
||||
|
||||
@@ -2,6 +2,7 @@ import { useEffect, useState } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import { getJSON, itemsOrEmpty, readJSONCache, type Category } from "../../api";
|
||||
import { CategoryIcon } from "../../components/CategoryIcon";
|
||||
import { useSetPageTitle } from "../../components/PageTitleContext";
|
||||
import { SectionHeader } from "../../components/SectionHeader";
|
||||
import { Skeleton } from "../../components/Skeleton";
|
||||
import { langQuery, useI18n } from "../../i18n";
|
||||
@@ -32,6 +33,7 @@ function figmaCategoryRank(category: Category): number {
|
||||
|
||||
export function CategoriesPage() {
|
||||
const { t, lang } = useI18n();
|
||||
useSetPageTitle(t("categories"));
|
||||
const [cats, setCats] = useState<Category[]>([]);
|
||||
const [err, setErr] = useState<string | null>(null);
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { getJSON, itemsOrEmpty, readJSONCache, type Category } from "../../api";
|
||||
import { useSetPageTitle } from "../../components/PageTitleContext";
|
||||
import { RecommendedCard } from "../../components/RecommendedCard";
|
||||
import { SectionHeader } from "../../components/SectionHeader";
|
||||
import { langQuery, useI18n } from "../../i18n";
|
||||
@@ -12,6 +13,7 @@ import {
|
||||
|
||||
export function OfficialRecommendationsPage() {
|
||||
const { t, lang } = useI18n();
|
||||
useSetPageTitle(t("official"));
|
||||
const [items, setItems] = useState<PostBackedResource[]>([]);
|
||||
const [err, setErr] = useState<string | null>(null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user