+ {!isEditing ? (
<>
+ className="inline pl-0 normal-case text-gray-900 focus:text-black group-hover:text-gray-500">
{title}
-
+ {!readOnly ? (
+
+ ) : null}
>
) : (
@@ -22,8 +35,12 @@ const EditableHeading = ({ title, onChange }: { title: string; onChange: (value:
style={{ top: -6, fontSize: 22 }}
required
className="relative h-10 w-full cursor-pointer border-none bg-transparent pl-0 text-gray-900 hover:text-gray-700 focus:text-black focus:outline-none focus:ring-0"
+ placeholder={placeholder}
defaultValue={title}
- onChange={(e) => onChange(e.target.value)}
+ onBlur={(e) => {
+ setIsEditing(false);
+ onChange && onChange(e.target.value);
+ }}
/>
)}
diff --git a/apps/web/pages/availability/[schedule].tsx b/apps/web/pages/availability/[schedule].tsx
index 94774d8321..66e1e80e7c 100644
--- a/apps/web/pages/availability/[schedule].tsx
+++ b/apps/web/pages/availability/[schedule].tsx
@@ -141,7 +141,7 @@ export default function Availability() {
success={({ data }) => {
return (
}
+ heading={
}
subtitle={data.schedule.availability.map((availability) => (
{availabilityAsString(availability, i18n.language)}
diff --git a/apps/web/pages/event-types/[type].tsx b/apps/web/pages/event-types/[type].tsx
index 2bac1df15e..b87460dddb 100644
--- a/apps/web/pages/event-types/[type].tsx
+++ b/apps/web/pages/event-types/[type].tsx
@@ -67,6 +67,7 @@ import { EditLocationDialog } from "@components/dialog/EditLocationDialog";
import RecurringEventController from "@components/eventtype/RecurringEventController";
import CustomInputTypeForm from "@components/pages/eventtypes/CustomInputTypeForm";
import Badge from "@components/ui/Badge";
+import EditableHeading from "@components/ui/EditableHeading";
import InfoBadge from "@components/ui/InfoBadge";
import CheckboxField from "@components/ui/form/CheckboxField";
import CheckedSelect from "@components/ui/form/CheckedSelect";
@@ -310,7 +311,6 @@ const EventTypePage = (props: inferSSRProps) => {
});
const connectedCalendarsQuery = trpc.useQuery(["viewer.connectedCalendars"]);
- const [editIcon, setEditIcon] = useState(true);
const [showLocationModal, setShowLocationModal] = useState(false);
const [selectedLocation, setSelectedLocation] = useState(undefined);
const [selectedCustomInput, setSelectedCustomInput] = useState(undefined);
@@ -318,7 +318,6 @@ const EventTypePage = (props: inferSSRProps) => {
const [customInputs, setCustomInputs] = useState(
eventType.customInputs.sort((a, b) => a.id - b.id) || []
);
- const [tokensList, setTokensList] = useState>([]);
const defaultSeatsPro = 6;
const minSeats = 2;
@@ -439,6 +438,7 @@ const EventTypePage = (props: inferSSRProps) => {
const formMethods = useForm({
defaultValues: {
+ title: eventType.title,
locations: eventType.locations || [],
recurringEvent: eventType.recurringEvent || null,
schedule: eventType.schedule?.id,
@@ -846,37 +846,10 @@ const EventTypePage = (props: inferSSRProps) => {
setEditIcon(false)}>
- {editIcon ? (
- <>
-
- {formMethods.getValues("title") && formMethods.getValues("title") !== ""
- ? formMethods.getValues("title")
- : eventType.title}
-
-
- >
- ) : (
-
- {
- setEditIcon(true);
- formMethods.getValues("title") === "" && formMethods.setValue("title", eventType.title);
- }}
- />
-
- )}
-