Skip to content

Commit

Permalink
fix(platform): update environment with same site
Browse files Browse the repository at this point in the history
  • Loading branch information
lizimeow committed Nov 3, 2022
1 parent 3a94338 commit 45b164c
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 10 deletions.
3 changes: 3 additions & 0 deletions packages/platform-server/src/db/mysql/property.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ export class CookieType implements Cookie {

@Field({ nullable: true })
expire!: string

@Field({ defaultValue: 'Lax' })
sameSite!: 'Strict' | 'Lax' | 'None'
}

@ObjectType({ description: 'project page asset' })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ import { useModuleState } from '@sigi/react'
import { useCallback, useState, useRef } from 'react'

import { IconWithTips, RequiredTextField } from '@perfsee/components'
import { CookieType, HeaderType, LocalStorageType } from '@perfsee/shared'

import { EnvSchema, PropertyModule } from '../../../shared'
import { CookieSchema, EnvSchema, PropertyModule, LocalStorageSchema, HeaderSchema } from '../../../shared'

import { FormCookies } from './form-cookies'
import { FormHeaders } from './form-headers'
Expand All @@ -53,9 +52,9 @@ export const EnvEditForm = (props: FromProps) => {
})

const nameRef = useRef<ITextField>({ value: '' } as any)
const headersRef = useRef<{ getHeaders: () => HeaderType[] }>()
const cookiesRef = useRef<{ getCookies: () => CookieType[] }>()
const localStorageRef = useRef<{ getLocalStorage: () => LocalStorageType[] }>()
const headersRef = useRef<{ getHeaders: () => HeaderSchema[] }>()
const cookiesRef = useRef<{ getCookies: () => CookieSchema[] }>()
const localStorageRef = useRef<{ getLocalStorage: () => LocalStorageSchema[] }>()
const [isCompetitor, setAsCompetitor] = useState<boolean>(!!defaultEnv?.isCompetitor)
const [zone, setZone] = useState(defaultEnv?.zone ?? defaultZone)

Expand Down Expand Up @@ -102,7 +101,7 @@ export const EnvEditForm = (props: FromProps) => {
<Stack tokens={{ childrenGap: 8 }}>
<RequiredTextField id="name" label="Environment name" defaultValue={defaultEnv?.name} componentRef={nameRef} />
<FormHeaders defaultHeaders={defaultEnv?.headers ?? []} ref={headersRef} />
<FormCookies defaultCookies={(defaultEnv?.cookies ?? []) as CookieType[]} ref={cookiesRef} />
<FormCookies defaultCookies={defaultEnv?.cookies ?? []} ref={cookiesRef} />
<FormLocalStorage defaultLocalStorage={defaultEnv?.localStorage ?? []} ref={localStorageRef} />
<ComboBox label="Zone" selectedKey={zone} options={zones} onChange={onZoneChange} useComboBoxAsMenuWidth />
<Stack tokens={{ childrenGap: 8 }} horizontal horizontalAlign="space-between" verticalAlign="end">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ import { FormEvent, forwardRef, useMemo, useState, useCallback, useImperativeHan

import { RequiredTextField, TooltipWithEllipsis, useToggleState } from '@perfsee/components'
import { lighten, SharedColors } from '@perfsee/dls'
import { CookieType } from '@perfsee/shared'
import { CookieSchema } from '@perfsee/platform/modules/shared'

import { NormalToken, TextFieldStyles } from '../style'

export type PartialCookie = Partial<CookieType>
export type PartialCookie = Partial<CookieSchema>

type CookieProps = {
cookie: PartialCookie
Expand Down Expand Up @@ -272,7 +272,7 @@ const FormCookie = (props: CookieProps) => {
)
}

export const FormCookies = forwardRef((props: { defaultCookies: CookieType[] }, ref) => {
export const FormCookies = forwardRef((props: { defaultCookies: CookieSchema[] }, ref) => {
const [cookies, setCookies] = useState<PartialCookie[]>(props.defaultCookies)
useImperativeHandle(
ref,
Expand Down Expand Up @@ -302,7 +302,7 @@ export const FormCookies = forwardRef((props: { defaultCookies: CookieType[] },
)

const onAddCookie = useCallback(() => {
setCookies([...cookies, { httpOnly: true, secure: false }])
setCookies([...cookies, { httpOnly: true, secure: false, sameSite: 'Lax' }])
}, [cookies])

const newCookies = useMemo(() => {
Expand Down
3 changes: 3 additions & 0 deletions packages/platform/src/modules/shared/property-type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ export type EnvSchema = PropertyQuery['project']['environments'][0]
export type ConnectionType = SettingPropertyQuery['connections'][0]
export type DeviceType = SettingPropertyQuery['devices'][0]
export type PageRelation = PageRelationsQuery['project']['pageRelations'][0]
export type CookieSchema = PropertyQuery['project']['environments'][0]['cookies'][0]
export type HeaderSchema = PropertyQuery['project']['environments'][0]['headers'][0]
export type LocalStorageSchema = NonNullable<PropertyQuery['project']['environments'][0]['localStorage']>[0]

export type UpdatePagePayload = {
page: Partial<PageSchema>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ fragment environmentFields on Environment {
httpOnly
secure
expire
sameSite
}
headers {
key
Expand Down
2 changes: 2 additions & 0 deletions packages/schema/src/server-schema.gql
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,7 @@ type CookieType {
httpOnly: Boolean!
secure: Boolean!
expire: String
sameSite: String!
}

"""project page asset"""
Expand Down Expand Up @@ -1353,6 +1354,7 @@ input CookieInputType {
httpOnly: Boolean!
secure: Boolean!
expire: String
sameSite: String = "Lax"
}

input HeaderInputType {
Expand Down

0 comments on commit 45b164c

Please sign in to comment.