Skip to content

Commit d0e894b

Browse files
Merge pull request #65 from linked-planet/dev
Dev
2 parents 2f08bbc + 7278174 commit d0e894b

File tree

13 files changed

+874
-699
lines changed

13 files changed

+874
-699
lines changed

library/src/components/Accordion.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ type AccordionMultipleProps = Pick<
3434
type AccordionContainerProps = (
3535
| AccordionSingleProps
3636
| AccordionMultipleProps
37-
) & {
37+
) & {
3838
"data-testid"?: string
3939
"data-id"?: string
4040
}
@@ -59,7 +59,6 @@ const AccordionItem = React.forwardRef(
5959
"border-border overflow-hidden border-b-2 first:rounded-t last:rounded-b last:border-b-0 focus-within:relative focus-within:z-10",
6060
className,
6161
)}
62-
6362
ref={forwardedRef}
6463
>
6564
{children}
@@ -81,7 +80,7 @@ const AccordionTrigger = React.forwardRef(
8180
<RAccordion.Header className="flex">
8281
<RAccordion.Trigger
8382
className={twMerge(
84-
"text-text bg-surface hover:bg-surface-hovered active:bg-surface-pressed group flex min-h-12 flex-1 cursor-default items-center justify-between px-4 text-base font-bold outline-none",
83+
"text-text bg-surface hover:bg-surface-hovered active:bg-surface-pressed group flex min-h-12 flex-1 cursor-pointer disabled:cursor-default items-center justify-between px-4 text-base font-bold outline-none",
8584
className,
8685
)}
8786
{...props}
@@ -110,7 +109,7 @@ const AccordionContent = React.forwardRef(
110109
) => (
111110
<RAccordion.Content
112111
className={twMerge(
113-
"data-[state=open]:animate-slideDown data-[state=closed]:animate-slideUp border-border bg-surface overflow-hidden border-t",
112+
"data-[state=open]:animate-slideDownAccordion data-[state=closed]:animate-slideUpAccordion border-border bg-surface overflow-hidden border-t",
114113
className,
115114
)}
116115
{...props}

library/src/components/Collapsible.tsx

Lines changed: 35 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
import ChevronDownIcon from "@atlaskit/icon/glyph/chevron-down"
2-
import ChevronRightIcon from "@atlaskit/icon/glyph/chevron-right"
3-
import ChevronUpIcon from "@atlaskit/icon/glyph/chevron-up"
41
import * as CollapsibleRUI from "@radix-ui/react-collapsible"
5-
import { forwardRef, type HTMLProps, useCallback, useState } from "react"
2+
import {
3+
ChevronDownIcon,
4+
ChevronRightIcon,
5+
ChevronUpIcon,
6+
} from "@radix-ui/react-icons"
7+
import { forwardRef, type HTMLProps } from "react"
68
import { twMerge } from "tailwind-merge"
79

810
type CollapsibleProps = {
@@ -47,53 +49,24 @@ export const Collapsible = forwardRef(
4749
}: CollapsibleProps,
4850
ref: React.ForwardedRef<HTMLDivElement>,
4951
) => {
50-
const [open, setOpen] = useState(
51-
opened === undefined || opened === null ? defaultOpen : opened,
52-
)
53-
54-
if (opened != null && opened !== open) {
55-
setOpen(opened)
56-
}
57-
58-
const openCB = useCallback(
59-
(opened: boolean) => {
60-
setOpen(opened)
61-
if (onChanged) onChanged(opened)
62-
},
63-
[onChanged],
64-
)
65-
66-
const chevron = open ? (
67-
<ChevronDownIcon label="close" />
68-
) : (
69-
<>
70-
{openButtonPosition === "left" ? (
71-
<ChevronRightIcon label="open" />
72-
) : (
73-
<ChevronUpIcon label="open" />
74-
)}
75-
</>
76-
)
77-
7852
return (
7953
<CollapsibleRUI.Root
8054
{...props}
81-
open={open}
82-
defaultOpen={defaultOpen}
83-
onOpenChange={openCB}
84-
className={twMerge("bg-surface-raised rounded", className)}
55+
className={twMerge(
56+
"bg-surface-raised rounded group",
57+
className,
58+
)}
8559
style={style}
8660
data-testid={testId}
8761
id={id}
8862
ref={ref}
89-
9063
>
9164
<CollapsibleRUI.Trigger
9265
className={twMerge(
93-
`flex w-full flex-1 items-center justify-start ${
66+
`flex w-full p-1.5 flex-1 items-center hover:bg-surface-raised-hovered active:bg-surface-raised-pressed justify-start select-none ${
9467
openButtonPosition === "hidden"
9568
? "cursor-default"
96-
: ""
69+
: "cursor-pointer disabled:cursor-default"
9770
}`,
9871
triggerClassName,
9972
)}
@@ -103,7 +76,14 @@ export const Collapsible = forwardRef(
10376
<div>
10477
{openButtonPosition === "left" && (
10578
<div className="flex h-full flex-none items-center justify-center">
106-
{chevron}
79+
<ChevronDownIcon
80+
aria-label="close"
81+
className="group-data-[state=open]:block group-data-[state=closed]:hidden"
82+
/>
83+
<ChevronRightIcon
84+
aria-label="open"
85+
className="group-data-[state=closed]:block group-data-[state=open]:hidden"
86+
/>
10787
</div>
10888
)}
10989
<div
@@ -117,15 +97,27 @@ export const Collapsible = forwardRef(
11797
</div>
11898
{openButtonPosition === "right" && (
11999
<div className="flex h-full flex-none items-center justify-center">
120-
{chevron}
100+
<ChevronDownIcon
101+
aria-label="close"
102+
className="group-data-[state=open]:block group-data-[state=closed]:hidden"
103+
/>
104+
<ChevronUpIcon
105+
aria-label="open"
106+
className="group-data-[state=closed]:block group-data-[state=open]:hidden"
107+
/>
121108
</div>
122109
)}
123110
</div>
124111
</CollapsibleRUI.Trigger>
125112

126113
<CollapsibleRUI.Content
127-
className={contentClassName}
128-
style={contentStyle}
114+
className={twMerge(
115+
"overflow-hidden data-[state=closed]:animate-slideUpCollapsible data-[state=open]:animate-slideDownCollapsible",
116+
contentClassName,
117+
)}
118+
style={{
119+
...contentStyle,
120+
}}
129121
>
130122
{children}
131123
</CollapsibleRUI.Content>

library/src/components/inputs/datetimepicker/TimePicker.tsx

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type React from "react"
21
import {
32
type Dispatch,
43
type ReactNode,
@@ -125,10 +124,12 @@ function useOptions({
125124
}
126125

127126
// add the value or default value to the top
128-
if (_value) {
129-
slots.unshift(_value)
130-
} else if (_defaultValue) {
131-
slots.unshift(_defaultValue)
127+
if (!foundValue) {
128+
if (_value) {
129+
slots.unshift(_value)
130+
} else if (_defaultValue) {
131+
slots.unshift(_defaultValue)
132+
}
132133
}
133134

134135
// create options
@@ -165,8 +166,8 @@ export function TimePicker<FormData extends FieldValues>(
165166

166167
/**
167168
* The timepicker is a select that opens a list of times.
168-
* @param param0
169-
* @returns
169+
* @param param0
170+
* @returns
170171
*/
171172
export function TimePicker<FormData extends FieldValues>({
172173
invalid,
@@ -215,10 +216,15 @@ export function TimePicker<FormData extends FieldValues>({
215216
[onChange],
216217
)
217218

218-
const classNameMerged = twMerge("flex flex-1 min-w-28 cursor-pointer", className)
219+
const classNameMerged = twMerge(
220+
"flex flex-1 min-w-28 cursor-pointer",
221+
className,
222+
)
219223
const ariaLabel = label ?? _ariaLabel ?? "time picker"
220224

221-
const selectProps: SelectProps<TimeType, false> | SelectInFormProps<FormData, TimeType, false> = {
225+
const selectProps:
226+
| SelectProps<TimeType, false>
227+
| SelectInFormProps<FormData, TimeType, false> = {
222228
testId,
223229
options,
224230
"aria-label": ariaLabel,
@@ -248,19 +254,15 @@ export function TimePicker<FormData extends FieldValues>({
248254

249255
if (!control) {
250256
selectProps satisfies SelectProps<TimeType, false>
251-
return (
252-
<TimePickerNotInForm
253-
{...selectProps}
254-
/>
255-
)
257+
return <TimePickerNotInForm {...selectProps} />
256258
}
257259

258-
const selectInFormProps = {...selectProps, control, name} satisfies SelectInFormProps<FormData, TimeType, false>
259-
return (
260-
<TimePickerInForm<FormData>
261-
{...selectInFormProps}
262-
/>
263-
)
260+
const selectInFormProps = {
261+
...selectProps,
262+
control,
263+
name,
264+
} satisfies SelectInFormProps<FormData, TimeType, false>
265+
return <TimePickerInForm<FormData> {...selectInFormProps} />
264266
}
265267

266268
function TimePickerNotInForm(props: SelectProps<TimeType, false>) {
@@ -270,9 +272,5 @@ function TimePickerNotInForm(props: SelectProps<TimeType, false>) {
270272
function TimePickerInForm<FormData extends FieldValues>({
271273
...props
272274
}: SelectInFormProps<FormData, TimeType, false>) {
273-
return (
274-
<Select<FormData, TimeType, false>
275-
{...props}
276-
/>
277-
)
275+
return <Select<FormData, TimeType, false> {...props} />
278276
}

0 commit comments

Comments
 (0)