removed Dialog from component names and changed -modal to -form

This commit is contained in:
Oliver Bryan
2026-01-21 12:26:19 +00:00
parent 7514a46d36
commit c766615d12
13 changed files with 34 additions and 39 deletions

View File

@@ -15,7 +15,7 @@ import { parseError } from "@/lib/server";
import { cn } from "@/lib/utils";
import ThemeToggle from "./theme-toggle";
function AccountDialog({ trigger }: { trigger?: ReactNode }) {
function Account({ trigger }: { trigger?: ReactNode }) {
const { user: currentUser, setUser } = useAuthenticatedSession();
const updateUser = useUpdateUser();
@@ -175,4 +175,4 @@ function AccountDialog({ trigger }: { trigger?: ReactNode }) {
);
}
export default AccountDialog;
export default Account;

View File

@@ -14,7 +14,7 @@ import { Field } from "@/components/ui/field";
import { useAddOrganisationMember } from "@/lib/query/hooks";
import { parseError, user } from "@/lib/server";
export function AddMemberDialog({
export function AddMember({
organisationId,
existingMembers,
trigger,

View File

@@ -29,7 +29,7 @@ import {
import { parseError } from "@/lib/server";
import { cn, issueID } from "@/lib/utils";
export function IssueModal({ trigger }: { trigger?: React.ReactNode }) {
export function IssueForm({ trigger }: { trigger?: React.ReactNode }) {
const { user } = useAuthenticatedSession();
const selectedOrganisation = useSelectedOrganisation();
const selectedProject = useSelectedProject();

View File

@@ -4,7 +4,7 @@ import { USER_NAME_MAX_LENGTH, USER_USERNAME_MAX_LENGTH } from "@sprint/shared";
import { useEffect, useState } from "react";
import { useNavigate, useSearchParams } from "react-router-dom";
import Avatar from "@/components/avatar";
import { ServerConfigurationDialog } from "@/components/server-configuration-dialog";
import { ServerConfiguration } from "@/components/server-configuration";
import { useSession } from "@/components/session-provider";
import { Button } from "@/components/ui/button";
import { Dialog, DialogContent, DialogTitle, DialogTrigger } from "@/components/ui/dialog";
@@ -219,7 +219,7 @@ export default function LogInForm() {
error !== "" && "border-destructive",
)}
>
<ServerConfigurationDialog />
<ServerConfiguration />
<span className="text-xl font-basteleur mb-2">{capitalise(mode)}</span>
<div className={"flex flex-col items-center mb-0"}>

View File

@@ -30,7 +30,7 @@ const slugify = (value: string) =>
.replace(/^-+/, "")
.replace(/-{2,}/g, "-");
export function OrganisationModal({
export function OrganisationForm({
trigger,
completeAction,
errorAction,

View File

@@ -1,6 +1,6 @@
import { useEffect, useMemo, useState } from "react";
import { toast } from "sonner";
import { OrganisationModal } from "@/components/organisation-modal";
import { OrganisationForm } from "@/components/organisation-form";
import { useSelection } from "@/components/selection-provider";
import { Button } from "@/components/ui/button";
import {
@@ -102,7 +102,7 @@ export function OrganisationSelect({
{organisations.length > 0 && <SelectSeparator />}
</SelectGroup>
<OrganisationModal
<OrganisationForm
trigger={
<Button variant="ghost" className={"w-full"} size={"sm"}>
Create Organisation

View File

@@ -2,16 +2,16 @@ import { DEFAULT_STATUS_COLOUR, ISSUE_STATUS_MAX_LENGTH, type SprintRecord } fro
import { useQueryClient } from "@tanstack/react-query";
import { type ReactNode, useCallback, useEffect, useMemo, useState } from "react";
import { toast } from "sonner";
import { AddMemberDialog } from "@/components/add-member-dialog";
import { OrganisationModal } from "@/components/organisation-modal";
import { AddMember } from "@/components/add-member";
import { OrganisationForm } from "@/components/organisation-form";
import { OrganisationSelect } from "@/components/organisation-select";
import { ProjectModal } from "@/components/project-modal";
import { ProjectForm } from "@/components/project-form";
import { ProjectSelect } from "@/components/project-select";
import { useSelection } from "@/components/selection-provider";
import { useAuthenticatedSession } from "@/components/session-provider";
import SmallSprintDisplay from "@/components/small-sprint-display";
import SmallUserDisplay from "@/components/small-user-display";
import { SprintModal } from "@/components/sprint-modal";
import { SprintForm } from "@/components/sprint-form";
import StatusTag from "@/components/status-tag";
import { Button } from "@/components/ui/button";
import ColourPicker from "@/components/ui/colour-picker";
@@ -45,7 +45,7 @@ import { queryKeys } from "@/lib/query/keys";
import { issue } from "@/lib/server";
import { capitalise } from "@/lib/utils";
function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
function Organisations({ trigger }: { trigger?: ReactNode }) {
const { user } = useAuthenticatedSession();
const queryClient = useQueryClient();
const { selectedOrganisationId, selectedProjectId } = useSelection();
@@ -540,7 +540,7 @@ function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
)}
</div>
<OrganisationModal
<OrganisationForm
mode="edit"
existingOrganisation={selectedOrganisation.Organisation}
open={editOrgOpen}
@@ -621,7 +621,7 @@ function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
))}
</div>
{isAdmin && (
<AddMemberDialog
<AddMember
organisationId={selectedOrganisation.Organisation.id}
existingMembers={members.map((m) => m.User.username)}
onSuccess={(user) => {
@@ -827,7 +827,7 @@ function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
);
})}
{isAdmin && (
<SprintModal
<SprintForm
projectId={selectedProject?.Project.id}
trigger={
<Button variant="outline" size="sm">
@@ -854,7 +854,7 @@ function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
{selectedProject && (
<>
<ProjectModal
<ProjectForm
mode="edit"
existingProject={selectedProject.Project}
open={editProjectOpen}
@@ -863,7 +863,7 @@ function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
await invalidateProjects();
}}
/>
<SprintModal
<SprintForm
mode="edit"
existingSprint={editingSprint ?? undefined}
sprints={sprints}
@@ -1112,4 +1112,4 @@ function OrganisationsDialog({ trigger }: { trigger?: ReactNode }) {
);
}
export default OrganisationsDialog;
export default Organisations;

View File

@@ -23,7 +23,7 @@ const keyify = (value: string) =>
.replace(/[^A-Z0-9]/g, "")
.slice(0, 4);
export function ProjectModal({
export function ProjectForm({
organisationId,
trigger,
completeAction,

View File

@@ -1,5 +1,5 @@
import { useEffect, useMemo, useState } from "react";
import { ProjectModal } from "@/components/project-modal";
import { ProjectForm } from "@/components/project-form";
import { useSelection } from "@/components/selection-provider";
import { Button } from "@/components/ui/button";
import {
@@ -81,7 +81,7 @@ export function ProjectSelect({
))}
{projects.length > 0 && <SelectSeparator />}
</SelectGroup>
<ProjectModal
<ProjectForm
organisationId={selectedOrganisationId ?? undefined}
trigger={
<Button

View File

@@ -34,7 +34,7 @@ const isValidURL = (url: string) => {
}
};
export function ServerConfigurationDialog({ trigger }: { trigger?: ReactNode }) {
export function ServerConfiguration({ trigger }: { trigger?: ReactNode }) {
const [open, setOpen] = useState(false);
const [serverURL, setServerURL] = useState(getServerURL());
const [originalURL, setOriginalURL] = useState(getServerURL());

View File

@@ -48,7 +48,7 @@ const getDefaultDates = () => {
};
};
export function SprintModal({
export function SprintForm({
projectId,
sprints,
trigger,

View File

@@ -10,11 +10,7 @@ export function TimerModal({ issueId, disabled }: { issueId: number; disabled?:
return (
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild disabled={disabled}>
<Button
variant="outline"
size="sm"
disabled={disabled}
>
<Button variant="outline" size="sm" disabled={disabled}>
<Icon icon="timer" className="size-4" />
Timer
</Button>