chore: cleans up a few merges
This commit is contained in:
@@ -24,30 +24,6 @@ export const connect: Connect = async function connect(this: MongooseAdapter) {
|
||||
useFacet: undefined,
|
||||
}
|
||||
|
||||
if ([process.env.APP_ENV, process.env.NODE_ENV].includes('test')) {
|
||||
if (process.env.PAYLOAD_TEST_MONGO_URL) {
|
||||
urlToConnect = process.env.PAYLOAD_TEST_MONGO_URL
|
||||
} else {
|
||||
connectionOptions.dbName = 'payloadmemory'
|
||||
const { MongoMemoryReplSet } = require('mongodb-memory-server')
|
||||
const getPort = require('get-port')
|
||||
|
||||
const port = await getPort()
|
||||
this.mongoMemoryServer = await MongoMemoryReplSet.create({
|
||||
instance: {
|
||||
dbName: 'payloadmemory',
|
||||
port,
|
||||
},
|
||||
replSet: {
|
||||
count: 3,
|
||||
},
|
||||
})
|
||||
|
||||
urlToConnect = this.mongoMemoryServer.getUri()
|
||||
successfulConnectionMessage = 'Connected to in-memory MongoDB server successfully!'
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
this.connection = (await mongoose.connect(urlToConnect, connectionOptions)).connection
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
/* eslint-disable no-restricted-syntax, no-await-in-loop */
|
||||
import type { Payload } from 'payload'
|
||||
import type { Migration } from 'payload/database'
|
||||
import type { PayloadRequest } from 'payload/dist/express/types'
|
||||
import type { PayloadRequest } from 'payload/types'
|
||||
|
||||
import { readMigrationFiles } from 'payload/database'
|
||||
import { commitTransaction } from 'payload/dist/utilities/commitTransaction'
|
||||
import { initTransaction } from 'payload/dist/utilities/initTransaction'
|
||||
import { killTransaction } from 'payload/dist/utilities/killTransaction'
|
||||
import {
|
||||
commitTransaction,
|
||||
initTransaction,
|
||||
killTransaction,
|
||||
readMigrationFiles,
|
||||
} from 'payload/database'
|
||||
import prompts from 'prompts'
|
||||
|
||||
import type { PostgresAdapter } from './types'
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
/* eslint-disable no-restricted-syntax, no-await-in-loop */
|
||||
import type { PayloadRequest } from 'payload/types'
|
||||
|
||||
import { getMigrations, readMigrationFiles } from 'payload/database'
|
||||
import { commitTransaction } from 'payload/dist/utilities/commitTransaction'
|
||||
import { initTransaction } from 'payload/dist/utilities/initTransaction'
|
||||
import { killTransaction } from 'payload/dist/utilities/killTransaction'
|
||||
import {
|
||||
commitTransaction,
|
||||
getMigrations,
|
||||
initTransaction,
|
||||
killTransaction,
|
||||
readMigrationFiles,
|
||||
} from 'payload/database'
|
||||
|
||||
import type { PostgresAdapter } from './types'
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { PayloadRequest } from 'payload/types'
|
||||
|
||||
import { sql } from 'drizzle-orm'
|
||||
import { readMigrationFiles } from 'payload/database'
|
||||
import { commitTransaction } from 'payload/dist/utilities/commitTransaction'
|
||||
import { initTransaction } from 'payload/dist/utilities/initTransaction'
|
||||
import { killTransaction } from 'payload/dist/utilities/killTransaction'
|
||||
import {
|
||||
commitTransaction,
|
||||
initTransaction,
|
||||
killTransaction,
|
||||
readMigrationFiles,
|
||||
} from 'payload/database'
|
||||
import prompts from 'prompts'
|
||||
|
||||
import type { PostgresAdapter } from './types'
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
/* eslint-disable no-restricted-syntax, no-await-in-loop */
|
||||
import type { PayloadRequest } from 'payload/types'
|
||||
|
||||
import { getMigrations, readMigrationFiles } from 'payload/database'
|
||||
import { commitTransaction } from 'payload/dist/utilities/commitTransaction'
|
||||
import { initTransaction } from 'payload/dist/utilities/initTransaction'
|
||||
import { killTransaction } from 'payload/dist/utilities/killTransaction'
|
||||
import {
|
||||
commitTransaction,
|
||||
getMigrations,
|
||||
initTransaction,
|
||||
killTransaction,
|
||||
readMigrationFiles,
|
||||
} from 'payload/database'
|
||||
|
||||
import type { PostgresAdapter } from './types'
|
||||
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
/* eslint-disable no-restricted-syntax, no-await-in-loop */
|
||||
import type { PayloadRequest } from 'payload/types'
|
||||
|
||||
import { getMigrations, readMigrationFiles } from 'payload/database'
|
||||
import { commitTransaction } from 'payload/dist/utilities/commitTransaction'
|
||||
import { initTransaction } from 'payload/dist/utilities/initTransaction'
|
||||
import { killTransaction } from 'payload/dist/utilities/killTransaction'
|
||||
import {
|
||||
commitTransaction,
|
||||
getMigrations,
|
||||
initTransaction,
|
||||
killTransaction,
|
||||
readMigrationFiles,
|
||||
} from 'payload/database'
|
||||
|
||||
import type { PostgresAdapter } from './types'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { accessOperation } from 'payload/operations'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import formatName from '../../../graphql/utilities/formatName'
|
||||
import formatName from '../../utilities/formatName'
|
||||
import { Context } from '../types'
|
||||
import { isolateObjectProperty } from 'payload/utilities'
|
||||
const formatConfigNames = (results, configs) => {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import React, { useEffect } from 'react'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { Gutter, SetStepNav, useActions } from '@payloadcms/ui'
|
||||
import { Gutter, SetStepNav } from '@payloadcms/ui'
|
||||
import React from 'react'
|
||||
|
||||
import { DefaultDashboardClient } from './index.client'
|
||||
import './index.scss'
|
||||
|
||||
@@ -26,12 +27,6 @@ export const DefaultDashboard: React.FC<DashboardProps> = (props) => {
|
||||
visibleGlobals,
|
||||
} = props
|
||||
|
||||
const { setViewActions } = useActions()
|
||||
|
||||
useEffect(() => {
|
||||
setViewActions([])
|
||||
}, [setViewActions])
|
||||
|
||||
return (
|
||||
<div className={baseClass}>
|
||||
<SetStepNav nav={[]} />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
import type { Metadata } from 'next'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { HydrateClientUser, RenderCustomComponent } from '@payloadcms/ui'
|
||||
import Link from 'next/link'
|
||||
@@ -10,6 +10,7 @@ import type { DashboardProps } from './Default'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { initPage } from '../../utilities/initPage'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import { DefaultDashboard } from './Default'
|
||||
|
||||
export const generateMetadata = async ({
|
||||
|
||||
@@ -72,7 +72,6 @@ export const DefaultEditView: React.FC = () => {
|
||||
globalSlug: globalConfig?.slug,
|
||||
})
|
||||
|
||||
const isEditing = 'isEditing' in props ? props.isEditing : undefined
|
||||
const operation = id ? 'update' : 'create'
|
||||
|
||||
const auth = collectionConfig ? collectionConfig.auth : undefined
|
||||
@@ -184,7 +183,7 @@ export const DefaultEditView: React.FC = () => {
|
||||
collectionSlug={collectionConfig?.slug}
|
||||
globalSlug={globalConfig?.slug}
|
||||
id={id}
|
||||
isEditing={isEditing || false}
|
||||
isEditing={Boolean(id) || false}
|
||||
pluralLabel={collectionConfig?.labels?.plural}
|
||||
useAsTitle={collectionConfig?.admin?.useAsTitle}
|
||||
/>
|
||||
@@ -199,7 +198,7 @@ export const DefaultEditView: React.FC = () => {
|
||||
disableActions={disableActions}
|
||||
hasSavePermission={hasSavePermission}
|
||||
id={id}
|
||||
isEditing={isEditing}
|
||||
isEditing={Boolean(id)}
|
||||
permissions={docPermissions}
|
||||
slug={collectionConfig?.slug}
|
||||
/>
|
||||
|
||||
@@ -8,13 +8,13 @@ const withPayload = (nextConfig = {}) => {
|
||||
'**/*': [
|
||||
...(nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || []),
|
||||
'drizzle-kit',
|
||||
'drizzle-kit/utils',
|
||||
'drizzle-kit/payload',
|
||||
],
|
||||
},
|
||||
serverComponentsExternalPackages: [
|
||||
...(nextConfig?.experimental?.serverComponentsExternalPackages || []),
|
||||
'drizzle-kit',
|
||||
'drizzle-kit/utils',
|
||||
'drizzle-kit/payload',
|
||||
'pino',
|
||||
'pino-pretty',
|
||||
],
|
||||
@@ -30,7 +30,7 @@ const withPayload = (nextConfig = {}) => {
|
||||
externals: [
|
||||
...(incomingWebpackConfig?.externals || []),
|
||||
'drizzle-kit',
|
||||
'drizzle-kit/utils',
|
||||
'drizzle-kit/payload',
|
||||
'pino',
|
||||
'pino-pretty',
|
||||
'sharp',
|
||||
|
||||
@@ -11,7 +11,6 @@ import FormSubmit from '../../forms/Submit'
|
||||
import { X } from '../../icons/X'
|
||||
import { useAuth } from '../../providers/Auth'
|
||||
import { useConfig } from '../../providers/Config'
|
||||
import { DocumentInfoProvider } from '../../providers/DocumentInfo'
|
||||
import { OperationContext } from '../../providers/OperationProvider'
|
||||
import { useSearchParams } from '../../providers/SearchParams'
|
||||
import { SelectAllStatus, useSelection } from '../../providers/SelectionProvider'
|
||||
@@ -126,56 +125,54 @@ const EditMany: React.FC<Props> = (props) => {
|
||||
{t('general:edit')}
|
||||
</DrawerToggler>
|
||||
<Drawer Header={null} slug={drawerSlug}>
|
||||
<DocumentInfoProvider collection={collection}>
|
||||
<OperationContext.Provider value="update">
|
||||
<Form className={`${baseClass}__form`} onSuccess={onSuccess}>
|
||||
<div className={`${baseClass}__main`}>
|
||||
<div className={`${baseClass}__header`}>
|
||||
<h2 className={`${baseClass}__header__title`}>
|
||||
{t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}
|
||||
</h2>
|
||||
<button
|
||||
aria-label={t('general:close')}
|
||||
className={`${baseClass}__header__close`}
|
||||
id={`close-drawer__${drawerSlug}`}
|
||||
onClick={() => closeModal(drawerSlug)}
|
||||
type="button"
|
||||
>
|
||||
<X />
|
||||
</button>
|
||||
</div>
|
||||
<FieldSelect fields={fields} setSelected={setSelected} />
|
||||
[RenderFields]
|
||||
<OperationContext.Provider value="update">
|
||||
<Form className={`${baseClass}__form`} onSuccess={onSuccess}>
|
||||
<div className={`${baseClass}__main`}>
|
||||
<div className={`${baseClass}__header`}>
|
||||
<h2 className={`${baseClass}__header__title`}>
|
||||
{t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}
|
||||
</h2>
|
||||
<button
|
||||
aria-label={t('general:close')}
|
||||
className={`${baseClass}__header__close`}
|
||||
id={`close-drawer__${drawerSlug}`}
|
||||
onClick={() => closeModal(drawerSlug)}
|
||||
type="button"
|
||||
>
|
||||
<X />
|
||||
</button>
|
||||
</div>
|
||||
<FieldSelect fields={fields} setSelected={setSelected} />
|
||||
[RenderFields]
|
||||
{/* <RenderFields fieldSchema={selected} fieldTypes={fieldTypes} /> */}
|
||||
<div className={`${baseClass}__sidebar-wrap`}>
|
||||
<div className={`${baseClass}__sidebar`}>
|
||||
<div className={`${baseClass}__sidebar-sticky-wrap`}>
|
||||
<div className={`${baseClass}__document-actions`}>
|
||||
{collection.versions ? (
|
||||
<React.Fragment>
|
||||
<Publish
|
||||
action={`${serverURL}${api}/${slug}${getQueryParams()}`}
|
||||
disabled={selected.length === 0}
|
||||
/>
|
||||
<SaveDraft
|
||||
action={`${serverURL}${api}/${slug}${getQueryParams()}`}
|
||||
disabled={selected.length === 0}
|
||||
/>
|
||||
</React.Fragment>
|
||||
) : (
|
||||
<Submit
|
||||
<div className={`${baseClass}__sidebar-wrap`}>
|
||||
<div className={`${baseClass}__sidebar`}>
|
||||
<div className={`${baseClass}__sidebar-sticky-wrap`}>
|
||||
<div className={`${baseClass}__document-actions`}>
|
||||
{collection.versions ? (
|
||||
<React.Fragment>
|
||||
<Publish
|
||||
action={`${serverURL}${api}/${slug}${getQueryParams()}`}
|
||||
disabled={selected.length === 0}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
<SaveDraft
|
||||
action={`${serverURL}${api}/${slug}${getQueryParams()}`}
|
||||
disabled={selected.length === 0}
|
||||
/>
|
||||
</React.Fragment>
|
||||
) : (
|
||||
<Submit
|
||||
action={`${serverURL}${api}/${slug}${getQueryParams()}`}
|
||||
disabled={selected.length === 0}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Form>
|
||||
</OperationContext.Provider>
|
||||
</DocumentInfoProvider>
|
||||
</div>
|
||||
</Form>
|
||||
</OperationContext.Provider>
|
||||
</Drawer>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -56,7 +56,6 @@ export const BlockRow: React.FC<BlockFieldProps> = ({
|
||||
listeners,
|
||||
moveRow,
|
||||
path: parentPath,
|
||||
schemaPath,
|
||||
permissions,
|
||||
readOnly,
|
||||
removeRow,
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
'use client'
|
||||
|
||||
import type { Permissions, User } from 'payload/auth'
|
||||
|
||||
import { useEffect } from 'react'
|
||||
|
||||
import { useAuth } from '..'
|
||||
|
||||
export const HydrateClientUser: React.FC<{ permissions: Permissions; user: User }> = ({
|
||||
permissions,
|
||||
user,
|
||||
}) => {
|
||||
const { setPermissions, setUser } = useAuth()
|
||||
|
||||
useEffect(() => {
|
||||
setUser(user)
|
||||
setPermissions(permissions)
|
||||
}, [user, permissions, setUser, setPermissions])
|
||||
|
||||
return null
|
||||
}
|
||||
@@ -51,10 +51,6 @@ export const DocumentInfoProvider: React.FC<
|
||||
const [unpublishedVersions, setUnpublishedVersions] =
|
||||
useState<PaginatedDocs<TypeWithVersion<any>>>(null)
|
||||
|
||||
|
||||
|
||||
const [title, setTitle] = useState<string>('')
|
||||
|
||||
const [title, setTitle] = useState<string>('')
|
||||
|
||||
const baseURL = `${serverURL}${api}`
|
||||
@@ -77,7 +73,7 @@ export const DocumentInfoProvider: React.FC<
|
||||
}
|
||||
}
|
||||
|
||||
const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(permissions[pluralType][slug])
|
||||
const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(null)
|
||||
|
||||
const getVersions = useCallback(async () => {
|
||||
let versionFetchURL
|
||||
@@ -225,14 +221,14 @@ export const DocumentInfoProvider: React.FC<
|
||||
'Accept-Language': i18n.language,
|
||||
},
|
||||
})
|
||||
try {
|
||||
const json = await res.json()
|
||||
setDocPermissions(json)
|
||||
} catch (e) {
|
||||
console.error('Unable to fetch document permissions', e)
|
||||
}
|
||||
const json = await res.json()
|
||||
setDocPermissions(json)
|
||||
} else {
|
||||
// fallback to permissions from the entity type
|
||||
// (i.e. create has no id)
|
||||
setDocPermissions(permissions?.[pluralType]?.[slug])
|
||||
}
|
||||
}, [serverURL, api, pluralType, slug, id, i18n.language, code])
|
||||
}, [serverURL, api, pluralType, slug, id, permissions, i18n.language, code])
|
||||
|
||||
const getDocPreferences = useCallback(async () => {
|
||||
return getPreference<DocumentPreferences>(preferencesKey)
|
||||
@@ -279,13 +275,13 @@ export const DocumentInfoProvider: React.FC<
|
||||
|
||||
const value: DocumentInfoContext = {
|
||||
...documentInfo,
|
||||
docConfig,
|
||||
docPermissions,
|
||||
getDocPermissions,
|
||||
getDocPreferences,
|
||||
getVersions,
|
||||
publishedDoc,
|
||||
setDocFieldPreferences,
|
||||
docConfig,
|
||||
setDocumentInfo,
|
||||
setDocumentTitle,
|
||||
title,
|
||||
|
||||
Reference in New Issue
Block a user