-
-
-
- Domain
- Cookie
-
-
-
-
- {cookieJar?.cookies.map((c: Cookie) => (
-
-
- {cookieDomain(c)}
-
-
- {c.raw_cookie}
-
-
-
- patchModel(cookieJar, {
- cookies: cookieJar.cookies.filter((c2: Cookie) => c2 !== c),
- })
- }
- />
-
-
- ))}
-
-
+
+ {children}
);
+}
+
+CookieDialog.show = (cookieJarId: string | null) => {
+ const cookieJar = jotaiStore.get(cookieJarsAtom)?.find((jar) => jar.id === cookieJarId);
+ if (cookieJar == null) {
+ showAlert({
+ id: "invalid-jar",
+ body: `Failed to find cookie jar for ID: ${cookieJarId}`,
+ title: "Invalid Cookie Jar",
+ });
+ return;
+ }
+
+ showDialog({
+ id: "cookies",
+ title: `${cookieJar.name} Cookies`,
+ size: "full",
+ render: () =>
,
+ });
};
+
+function CookieDetails({ cookie }: { cookie: Cookie }) {
+ return (
+
+
+ {cookie.name}
+
+ {cookie.value}
+
+ {cookieDomain(cookie)}
+ {cookie.path}
+ {cookieExpires(cookie)}
+ {cookieSize(cookie)}
+ {cookie.httpOnly ? "Yes" : "No"}
+ {cookie.secure ? "Yes" : "No"}
+ {cookie.sameSite && (
+ {cookie.sameSite}
+ )}
+
+
+ );
+}
+
+function CookieEditor({
+ cookie,
+ expiresInputValue,
+ onChange,
+ onExpiresInputChange,
+}: {
+ cookie: Cookie;
+ expiresInputValue: string;
+ onChange: (cookie: Cookie) => void;
+ onExpiresInputChange: (value: string) => void;
+}) {
+ const sessionCookie = cookie.expires === "SessionEnd";
+
+ return (
+
+
+
+ onChange({ ...cookie, name })}
+ />
+
+
+ onChange({ ...cookie, value })}
+ />
+
+
+ onChange(cookieWithDomain(cookie, domain))}
+ />
+
+
+ onChange({ ...cookie, path })}
+ />
+
+
+
+ {
+ if (checked) {
+ onChange({ ...cookie, expires: "SessionEnd" });
+ return;
+ }
+
+ const expiresInput =
+ cookieExpiresFromInput(expiresInputValue) == null
+ ? defaultCookieExpiresInputValue()
+ : expiresInputValue;
+
+ onExpiresInputChange(expiresInput);
+ onChange({
+ ...cookie,
+ expires: cookieExpiresFromInput(expiresInput)!,
+ });
+ }}
+ />
+ {
+ onExpiresInputChange(value);
+
+ const expires = cookieExpiresFromInput(value);
+ if (expires != null) {
+ onChange({ ...cookie, expires });
+ }
+ }}
+ />
+
+
+ {cookieSize(cookie)}
+
+ onChange({ ...cookie, httpOnly })}
+ />
+
+
+ onChange({ ...cookie, secure })}
+ />
+
+
+
+ onChange({
+ ...cookie,
+ sameSite: sameSite === "" ? null : (sameSite as Cookie["sameSite"]),
+ })
+ }
+ />
+
+
+
+ );
+}
+
+function CookieKeyValueRow({ labelClassName, ...props }: ComponentProps
) {
+ return ;
+}
+
+function CookieTextInput({
+ autoFocus,
+ disabled,
+ onChange,
+ pattern,
+ placeholder,
+ required,
+ value,
+}: {
+ autoFocus?: boolean;
+ disabled?: boolean;
+ onChange: (value: string) => void;
+ pattern?: string;
+ placeholder?: string;
+ required?: boolean;
+ value: string;
+}) {
+ return (
+ onChange(event.target.value)}
+ pattern={pattern}
+ placeholder={placeholder}
+ required={required}
+ type="text"
+ value={value}
+ />
+ );
+}
+
+function CookieTextarea({ onChange, value }: { onChange: (value: string) => void; value: string }) {
+ return (
+