Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@uppy/core: fix types #4842

Merged
merged 1 commit into from
Dec 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion packages/@uppy/core/src/BasePlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ import type { I18n, Locale } from '@uppy/utils/lib/Translator'
import type { Body, Meta } from '@uppy/utils/lib/UppyFile'
import type { Uppy } from '.'

export type PluginOpts = { locale?: Locale; [key: string]: unknown }
export type PluginOpts = {
locale?: Locale
id?: string
[key: string]: unknown
}

export default class BasePlugin<
Opts extends PluginOpts,
Expand Down
9 changes: 8 additions & 1 deletion packages/@uppy/core/src/UIPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,19 @@ function debounce<T extends (...args: any[]) => any>(
}
}

export interface UIPluginOptions extends PluginOpts {
replaceTargetContent?: boolean
direction?: 'ltr' | 'rtl'
}

/**
* UIPlugin is the extended version of BasePlugin to incorporate rendering with Preact.
* Use this for plugins that need a user interface.
*
* For plugins without an user interface, see BasePlugin.
*/
class UIPlugin<
Opts extends PluginOpts & { direction?: 'ltr' | 'rtl' },
Opts extends UIPluginOptions,
M extends Meta,
B extends Body,
> extends BasePlugin<Opts, M, B> {
Expand All @@ -51,6 +56,8 @@ class UIPlugin<

parent: unknown

title: string

getTargetPlugin(target: unknown): UIPlugin<any, any, any> | undefined {
let targetPlugin
if (typeof target === 'object' && target instanceof UIPlugin) {
Expand Down
3 changes: 2 additions & 1 deletion packages/@uppy/core/src/Uppy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ export interface State<M extends Meta, B extends Body>
}
currentUploads: Record<string, CurrentUpload<M, B>>
allowNewUpload: boolean
recoveredState: null
recoveredState: null | State<M, B>
error: string | null
files: {
[key: string]: UppyFile<M, B>
Expand Down Expand Up @@ -254,6 +254,7 @@ export interface _UppyEventMap<M extends Meta, B extends Body> {
progress: ProgressCallback
'reset-progress': GenericEventCallback
restored: GenericEventCallback
'restore-confirmed': GenericEventCallback
'restriction-failed': RestrictionFailedCallback<M, B>
'resume-all': GenericEventCallback
'retry-all': RetryAllCallback
Expand Down
2 changes: 2 additions & 0 deletions packages/@uppy/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ export { default as Uppy } from './Uppy.ts'
export { default as UIPlugin } from './UIPlugin.ts'
export { default as BasePlugin } from './BasePlugin.ts'
export { debugLogger } from './loggers.ts'

export type { UIPluginOptions } from './UIPlugin.ts'