You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
7 months ago
|
import * as Popover from "@radix-ui/react-popover";
|
||
|
import { useMemo } from "react";
|
||
|
import { ButtonIcon } from "../ButtonIcon";
|
||
|
import { TextIcon } from "../icons";
|
||
|
import type { FontFamilyValues } from "../../element/types";
|
||
|
import { t } from "../../i18n";
|
||
|
import { isDefaultFont } from "./FontPicker";
|
||
|
|
||
|
interface FontPickerTriggerProps {
|
||
|
selectedFontFamily: FontFamilyValues | null;
|
||
|
}
|
||
|
|
||
|
export const FontPickerTrigger = ({
|
||
|
selectedFontFamily,
|
||
|
}: FontPickerTriggerProps) => {
|
||
|
const isTriggerActive = useMemo(
|
||
|
() => Boolean(selectedFontFamily && !isDefaultFont(selectedFontFamily)),
|
||
|
[selectedFontFamily],
|
||
|
);
|
||
|
|
||
|
return (
|
||
|
<Popover.Trigger asChild>
|
||
|
{/* Empty div as trigger so it's stretched 100% due to different button sizes */}
|
||
|
<div>
|
||
|
<ButtonIcon
|
||
|
standalone
|
||
|
icon={TextIcon}
|
||
|
title={t("labels.showFonts")}
|
||
|
className="properties-trigger"
|
||
|
testId={"font-family-show-fonts"}
|
||
|
active={isTriggerActive}
|
||
|
// no-op
|
||
|
onClick={() => {}}
|
||
|
/>
|
||
|
</div>
|
||
|
</Popover.Trigger>
|
||
|
);
|
||
|
};
|