Compare commits

...

1 Commits

2 changed files with 38 additions and 24 deletions

View File

@ -1,3 +1,5 @@
import { faInfoCircle } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { twMerge } from "tailwind-merge"; import { twMerge } from "tailwind-merge";
import { Button, Tooltip } from "@app/components/v2"; import { Button, Tooltip } from "@app/components/v2";
@ -8,25 +10,41 @@ type Props = {
label: string; label: string;
onClear: () => void; onClear: () => void;
children: React.ReactNode; children: React.ReactNode;
tooltipText?: string;
}; };
export const LogFilterItem = ({ label, onClear, hoverTooltip, children, className }: Props) => { export const LogFilterItem = ({
label,
onClear,
hoverTooltip,
children,
className,
tooltipText
}: Props) => {
return ( return (
<Tooltip className="relative top-4" content={hoverTooltip} isDisabled={!hoverTooltip}> <div className={twMerge("flex flex-col justify-between", className)}>
<div className={twMerge("flex flex-col justify-between", className)}> <div className="flex items-center pr-1">
<div className="flex items-center justify-between pr-1"> <p className="text-xs opacity-60">{label}</p>
<p className="text-xs opacity-60">{label}</p> {tooltipText && (
<Button <Tooltip content={tooltipText} className="max-w-sm">
onClick={() => onClear()} <FontAwesomeIcon
variant="link" icon={faInfoCircle}
className="font-normal text-mineshaft-400 transition-all duration-75 hover:text-mineshaft-300" className="-mt-[0.05rem] ml-1 text-[11px] text-mineshaft-400"
size="xs" />
> </Tooltip>
Clear )}
</Button> <Button
</div> onClick={() => onClear()}
{children} variant="link"
className="ml-auto font-normal text-mineshaft-400 transition-all duration-75 hover:text-mineshaft-300"
size="xs"
>
Clear
</Button>
</div> </div>
</Tooltip> <Tooltip className="relative top-4" content={hoverTooltip} isDisabled={!hoverTooltip}>
<div>{children}</div>
</Tooltip>
</div>
); );
}; };

View File

@ -366,6 +366,7 @@ export const LogsFilter = ({ presets, setFilter, filter }: Props) => {
</LogFilterItem> </LogFilterItem>
<LogFilterItem <LogFilterItem
label="Secret Path" label="Secret Path"
tooltipText="Enter the exact secret path (wildcards like * are not supported)"
hoverTooltip={ hoverTooltip={
!selectedProject !selectedProject
? "Select a project before filtering by secret path." ? "Select a project before filtering by secret path."
@ -380,10 +381,7 @@ export const LogsFilter = ({ presets, setFilter, filter }: Props) => {
control={control} control={control}
name="secretPath" name="secretPath"
render={({ field: { onChange, value, ...field } }) => ( render={({ field: { onChange, value, ...field } }) => (
<FormControl <FormControl className="w-full">
tooltipText="Filter audit logs related to events that occurred on a specific secret path."
className="w-full"
>
<Input <Input
placeholder="Enter secret path" placeholder="Enter secret path"
className="disabled:cursor-not-allowed" className="disabled:cursor-not-allowed"
@ -403,6 +401,7 @@ export const LogsFilter = ({ presets, setFilter, filter }: Props) => {
? "Select a project before filtering by secret key." ? "Select a project before filtering by secret key."
: undefined : undefined
} }
tooltipText="Enter the exact secret key name (wildcards like * are not supported)"
className={twMerge(!selectedProject && "opacity-50")} className={twMerge(!selectedProject && "opacity-50")}
label="Secret Key" label="Secret Key"
onClear={() => { onClear={() => {
@ -413,10 +412,7 @@ export const LogsFilter = ({ presets, setFilter, filter }: Props) => {
control={control} control={control}
name="secretKey" name="secretKey"
render={({ field: { onChange, value, ...field } }) => ( render={({ field: { onChange, value, ...field } }) => (
<FormControl <FormControl className="w-full">
tooltipText="Filter audit logs related to a specific secret."
className="w-full"
>
<Input <Input
isDisabled={!selectedProject} isDisabled={!selectedProject}
{...field} {...field}