mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-03-13 03:16:15 +01:00
🖲️ fix: Convert Create and Edit Prompt Buttons to Links (#11056)
This commit is contained in:
parent
439bc98682
commit
d7ff507ff4
2 changed files with 15 additions and 17 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
import { useState, useMemo, memo, useRef } from 'react';
|
import { useState, useMemo, memo, useRef } from 'react';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
import { PermissionBits, ResourceType } from 'librechat-data-provider';
|
import { PermissionBits, ResourceType } from 'librechat-data-provider';
|
||||||
import { Menu as MenuIcon, Edit as EditIcon, EarthIcon, TextSearch } from 'lucide-react';
|
import { Menu as MenuIcon, Edit as EditIcon, EarthIcon, TextSearch } from 'lucide-react';
|
||||||
import {
|
import {
|
||||||
|
|
@ -9,7 +10,7 @@ import {
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from '@librechat/client';
|
} from '@librechat/client';
|
||||||
import type { TPromptGroup } from 'librechat-data-provider';
|
import type { TPromptGroup } from 'librechat-data-provider';
|
||||||
import { useLocalize, useSubmitMessage, useCustomLink, useResourcePermissions } from '~/hooks';
|
import { useLocalize, useSubmitMessage, useResourcePermissions } from '~/hooks';
|
||||||
import VariableDialog from '~/components/Prompts/Groups/VariableDialog';
|
import VariableDialog from '~/components/Prompts/Groups/VariableDialog';
|
||||||
import PreviewPrompt from '~/components/Prompts/PreviewPrompt';
|
import PreviewPrompt from '~/components/Prompts/PreviewPrompt';
|
||||||
import ListCard from '~/components/Prompts/Groups/ListCard';
|
import ListCard from '~/components/Prompts/Groups/ListCard';
|
||||||
|
|
@ -26,7 +27,6 @@ function ChatGroupItem({
|
||||||
const { submitPrompt } = useSubmitMessage();
|
const { submitPrompt } = useSubmitMessage();
|
||||||
const [isPreviewDialogOpen, setPreviewDialogOpen] = useState(false);
|
const [isPreviewDialogOpen, setPreviewDialogOpen] = useState(false);
|
||||||
const [isVariableDialogOpen, setVariableDialogOpen] = useState(false);
|
const [isVariableDialogOpen, setVariableDialogOpen] = useState(false);
|
||||||
const onEditClick = useCustomLink<HTMLDivElement>(`/d/prompts/${group._id}`);
|
|
||||||
|
|
||||||
const groupIsGlobal = useMemo(
|
const groupIsGlobal = useMemo(
|
||||||
() => instanceProjectId != null && group.projectIds?.includes(instanceProjectId),
|
() => instanceProjectId != null && group.projectIds?.includes(instanceProjectId),
|
||||||
|
|
@ -120,16 +120,12 @@ function ChatGroupItem({
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
disabled={!canEdit}
|
disabled={!canEdit}
|
||||||
className="cursor-pointer rounded-lg text-text-primary hover:bg-surface-hover focus:bg-surface-hover disabled:cursor-not-allowed"
|
className="cursor-pointer rounded-lg text-text-primary hover:bg-surface-hover focus:bg-surface-hover disabled:cursor-not-allowed"
|
||||||
onClick={(e) => {
|
asChild
|
||||||
e.stopPropagation();
|
|
||||||
onEditClick(e);
|
|
||||||
}}
|
|
||||||
onKeyDown={(e) => {
|
|
||||||
e.stopPropagation();
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<EditIcon className="mr-2 h-4 w-4 text-text-primary" aria-hidden="true" />
|
<Link to={`/d/prompts/${group._id}`}>
|
||||||
<span>{localize('com_ui_edit')}</span>
|
<EditIcon className="mr-2 h-4 w-4 text-text-primary" aria-hidden="true" />
|
||||||
|
<span>{localize('com_ui_edit')}</span>
|
||||||
|
</Link>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Plus } from 'lucide-react';
|
import { Plus } from 'lucide-react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import { Button, Skeleton } from '@librechat/client';
|
import { Button, Skeleton } from '@librechat/client';
|
||||||
import { PermissionTypes, Permissions } from 'librechat-data-provider';
|
import { PermissionTypes, Permissions } from 'librechat-data-provider';
|
||||||
import type { TPromptGroup, TStartupConfig } from 'librechat-data-provider';
|
import type { TPromptGroup, TStartupConfig } from 'librechat-data-provider';
|
||||||
|
|
@ -7,6 +7,7 @@ import DashGroupItem from '~/components/Prompts/Groups/DashGroupItem';
|
||||||
import ChatGroupItem from '~/components/Prompts/Groups/ChatGroupItem';
|
import ChatGroupItem from '~/components/Prompts/Groups/ChatGroupItem';
|
||||||
import { useGetStartupConfig } from '~/data-provider';
|
import { useGetStartupConfig } from '~/data-provider';
|
||||||
import { useLocalize, useHasAccess } from '~/hooks';
|
import { useLocalize, useHasAccess } from '~/hooks';
|
||||||
|
import { cn } from '~/utils';
|
||||||
|
|
||||||
export default function List({
|
export default function List({
|
||||||
groups = [],
|
groups = [],
|
||||||
|
|
@ -17,7 +18,6 @@ export default function List({
|
||||||
isChatRoute: boolean;
|
isChatRoute: boolean;
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
}) {
|
}) {
|
||||||
const navigate = useNavigate();
|
|
||||||
const localize = useLocalize();
|
const localize = useLocalize();
|
||||||
const { data: startupConfig = {} as Partial<TStartupConfig> } = useGetStartupConfig();
|
const { data: startupConfig = {} as Partial<TStartupConfig> } = useGetStartupConfig();
|
||||||
const { instanceProjectId } = startupConfig;
|
const { instanceProjectId } = startupConfig;
|
||||||
|
|
@ -31,13 +31,15 @@ export default function List({
|
||||||
{hasCreateAccess && (
|
{hasCreateAccess && (
|
||||||
<div className="flex w-full justify-end">
|
<div className="flex w-full justify-end">
|
||||||
<Button
|
<Button
|
||||||
|
asChild
|
||||||
variant="outline"
|
variant="outline"
|
||||||
className={`w-full bg-transparent ${isChatRoute ? '' : 'mx-2'}`}
|
className={cn('w-full bg-transparent', !isChatRoute && 'mx-2')}
|
||||||
onClick={() => navigate('/d/prompts/new')}
|
|
||||||
aria-label={localize('com_ui_create_prompt')}
|
aria-label={localize('com_ui_create_prompt')}
|
||||||
>
|
>
|
||||||
<Plus className="size-4" aria-hidden="true" />
|
<Link to="/d/prompts/new">
|
||||||
{localize('com_ui_create_prompt')}
|
<Plus className="size-4" aria-hidden="true" />
|
||||||
|
{localize('com_ui_create_prompt')}
|
||||||
|
</Link>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue