fix an assorted set of issues, more info on linear

This commit is contained in:
Amruth Pillai
2023-11-22 22:50:21 +01:00
parent 4baecb22e9
commit 4687091ebd
7 changed files with 57 additions and 50 deletions

View File

@ -58,7 +58,7 @@ export const BuilderLayout = () => {
<motion.div
layout
key={pageIndex}
initial={{ opacity: 0, x: -200 }}
initial={{ opacity: 0, x: -200, y: 0 }}
animate={{ opacity: 1, x: 0, transition: { delay: pageIndex * 0.3 } }}
exit={{ opacity: 0, x: -200 }}
>

View File

@ -48,11 +48,7 @@ export const BuilderToolbar = () => {
const onCenterView = () => frameRef?.contentWindow?.postMessage({ type: "CENTER_VIEW" }, "*");
return (
<motion.div
initial={{ opacity: 0.5 }}
whileHover={{ opacity: 1 }}
className="fixed inset-x-0 bottom-0 mx-auto pb-4 pt-6 text-center md:block"
>
<motion.div className="fixed inset-x-0 bottom-0 mx-auto hidden py-6 text-center md:block">
<div className="inline-flex items-center justify-center rounded-full bg-background px-4 shadow-xl">
<Tooltip content={t`Undo`}>
<Button size="icon" variant="ghost" className="rounded-none" onClick={() => undo()}>

View File

@ -3,11 +3,11 @@ import { CSS } from "@dnd-kit/utilities";
import { t } from "@lingui/macro";
import { CopySimple, DotsSixVertical, PencilSimple, TrashSimple } from "@phosphor-icons/react";
import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuItem,
ContextMenuTrigger,
} from "@reactive-resume/ui";
import { cn } from "@reactive-resume/utils";
import { motion } from "framer-motion";
@ -68,9 +68,10 @@ export const SectionListItem = ({
</div>
{/* List Item */}
<DropdownMenu>
<DropdownMenuTrigger asChild>
<ContextMenu>
<ContextMenuTrigger asChild>
<div
onClick={onUpdate}
className={cn(
"flex-1 cursor-context-menu p-4 hover:bg-secondary-accent",
!visible && "opacity-50",
@ -79,25 +80,25 @@ export const SectionListItem = ({
<h4 className="font-medium leading-relaxed">{title}</h4>
{description && <p className="text-xs leading-relaxed opacity-50">{description}</p>}
</div>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuCheckboxItem checked={visible} onCheckedChange={onToggleVisibility}>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuCheckboxItem checked={visible} onCheckedChange={onToggleVisibility}>
<span className="-ml-0.5">{t`Visible`}</span>
</DropdownMenuCheckboxItem>
<DropdownMenuItem onClick={onUpdate}>
</ContextMenuCheckboxItem>
<ContextMenuItem onClick={onUpdate}>
<PencilSimple size={14} />
<span className="ml-2">{t`Edit`}</span>
</DropdownMenuItem>
<DropdownMenuItem onClick={onDuplicate}>
</ContextMenuItem>
<ContextMenuItem onClick={onDuplicate}>
<CopySimple size={14} />
<span className="ml-2">{t`Copy`}</span>
</DropdownMenuItem>
<DropdownMenuItem className="text-error" onClick={onDelete}>
</ContextMenuItem>
<ContextMenuItem className="text-error" onClick={onDelete}>
<TrashSimple size={14} />
<span className="ml-2">{t`Remove`}</span>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</ContextMenuItem>
</ContextMenuContent>
</ContextMenu>
</div>
</motion.section>
);

View File

@ -238,14 +238,16 @@ export const LayoutSection = () => {
</p>
{pageIndex !== 0 && (
<Tooltip content={t`Remove Page`}>
<Button
size="icon"
variant="ghost"
className="h-8 w-8"
onClick={() => onRemovePage(pageIndex)}
>
<TrashSimple size={12} />
<TrashSimple size={12} className="text-error" />
</Button>
</Tooltip>
)}
</div>

View File

@ -33,7 +33,7 @@ import {
Input,
Tooltip,
} from "@reactive-resume/ui";
import { generateRandomName, kebabCase } from "@reactive-resume/utils";
import { cn, generateRandomName, kebabCase } from "@reactive-resume/utils";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { z } from "zod";
@ -235,11 +235,17 @@ export const ResumeDialog = () => {
<DialogFooter>
<div className="flex items-center">
<Button type="submit" disabled={loading} className="rounded-r-none">
<Button
type="submit"
disabled={loading}
className={cn(isCreate && "rounded-r-none")}
>
{isCreate && t`Create`}
{isUpdate && t`Save Changes`}
{isDuplicate && t`Duplicate`}
</Button>
{isCreate && (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button type="button" size="icon" className="rounded-l-none border-l">
@ -253,6 +259,7 @@ export const ResumeDialog = () => {
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)}
</div>
</DialogFooter>
</form>

View File

@ -47,7 +47,8 @@ export const useResumeStore = create<ResumeStore>()(
};
set((state) => {
state.resume.data.metadata.layout[0][0].push(`custom.${section.id}`);
const lastPageIndex = state.resume.data.metadata.layout.length - 1;
state.resume.data.metadata.layout[lastPageIndex][0].push(`custom.${section.id}`);
state.resume.data = _set(state.resume.data, `sections.custom.${section.id}`, section);
debouncedUpdateResume(JSON.parse(JSON.stringify(state.resume)));

View File

@ -3,7 +3,7 @@ import { z } from "zod";
export const projectSchema = z.object({
Title: z.string(),
Description: z.string(),
Url: z.string().url(),
Url: z.literal("").or(z.string().url()).optional(),
"Started On": z.string(),
"Finished On": z.string().optional(),
});