Skip to content

Commit

Permalink
docs(new): migrate FileChooser docs to TSDoc (#6092)
Browse files Browse the repository at this point in the history
Co-authored-by: martinsplitt <martin@geekonaut.de>
  • Loading branch information
2 people authored and mathiasbynens committed Jun 25, 2020
1 parent 7855519 commit 60904da
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 30 deletions.
21 changes: 0 additions & 21 deletions new-docs/puppeteer.filechooser._constructor_.md

This file was deleted.

4 changes: 3 additions & 1 deletion new-docs/puppeteer.filechooser.accept.md
Expand Up @@ -4,6 +4,8 @@

## FileChooser.accept() method

Accept the file chooser request with given paths.

<b>Signature:</b>

```typescript
Expand All @@ -14,7 +16,7 @@ accept(filePaths: string[]): Promise<void>;

| Parameter | Type | Description |
| --- | --- | --- |
| filePaths | string\[\] | |
| filePaths | string\[\] | If some of the <code>filePaths</code> are relative paths, then they are resolved relative to the [current working directory](https://nodejs.org/api/process.html#process_process_cwd)<!-- -->. |

<b>Returns:</b>

Expand Down
2 changes: 2 additions & 0 deletions new-docs/puppeteer.filechooser.cancel.md
Expand Up @@ -4,6 +4,8 @@

## FileChooser.cancel() method

Closes the file chooser without selecting any files.

<b>Signature:</b>

```typescript
Expand Down
2 changes: 2 additions & 0 deletions new-docs/puppeteer.filechooser.ismultiple.md
Expand Up @@ -4,6 +4,8 @@

## FileChooser.isMultiple() method

Whether file chooser allow for [multiple](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-multiple) file selection.

<b>Signature:</b>

```typescript
Expand Down
30 changes: 23 additions & 7 deletions new-docs/puppeteer.filechooser.md
Expand Up @@ -4,23 +4,39 @@

## FileChooser class

File choosers let you react to the page requesting for a file.

<b>Signature:</b>

```typescript
export declare class FileChooser
```

## Constructors
## Remarks

| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)(element, event)](./puppeteer.filechooser._constructor_.md) | | Constructs a new instance of the <code>FileChooser</code> class |
`FileChooser` objects are returned via the `page.waitForFileChooser` method.

The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `FileChooser` class.

## Example

An example of using `FileChooser`<!-- -->:

```js
const [fileChooser] = await Promise.all([
page.waitForFileChooser(),
page.click('#upload-file-button'), // some button that triggers file selection
]);
await fileChooser.accept(['/tmp/myfile.pdf']);

```
\*\*NOTE\*\* In browsers, only one file chooser can be opened at a time. All file choosers must be accepted or canceled. Not doing so will prevent subsequent file choosers from appearing.

## Methods

| Method | Modifiers | Description |
| --- | --- | --- |
| [accept(filePaths)](./puppeteer.filechooser.accept.md) | | |
| [cancel()](./puppeteer.filechooser.cancel.md) | | |
| [isMultiple()](./puppeteer.filechooser.ismultiple.md) | | |
| [accept(filePaths)](./puppeteer.filechooser.accept.md) | | Accept the file chooser request with given paths. |
| [cancel()](./puppeteer.filechooser.cancel.md) | | Closes the file chooser without selecting any files. |
| [isMultiple()](./puppeteer.filechooser.ismultiple.md) | | Whether file chooser allow for [multiple](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-multiple) file selection. |

2 changes: 1 addition & 1 deletion new-docs/puppeteer.md
Expand Up @@ -20,7 +20,7 @@
| [ElementHandle](./puppeteer.elementhandle.md) | ElementHandle represents an in-page DOM element. |
| [EventEmitter](./puppeteer.eventemitter.md) | The EventEmitter class that many Puppeteer classes extend. |
| [ExecutionContext](./puppeteer.executioncontext.md) | |
| [FileChooser](./puppeteer.filechooser.md) | |
| [FileChooser](./puppeteer.filechooser.md) | File choosers let you react to the page requesting for a file. |
| [Frame](./puppeteer.frame.md) | |
| [FrameManager](./puppeteer.framemanager.md) | |
| [HTTPRequest](./puppeteer.httprequest.md) | |
Expand Down
31 changes: 31 additions & 0 deletions src/common/FileChooser.ts
Expand Up @@ -18,11 +18,31 @@ import { ElementHandle } from './JSHandle';
import Protocol from '../protocol';
import { assert } from './assert';

/**
* File choosers let you react to the page requesting for a file.
* @remarks
* `FileChooser` objects are returned via the `page.waitForFileChooser` method.
* @example
* An example of using `FileChooser`:
* ```js
* const [fileChooser] = await Promise.all([
* page.waitForFileChooser(),
* page.click('#upload-file-button'), // some button that triggers file selection
* ]);
* await fileChooser.accept(['/tmp/myfile.pdf']);
* ```
* **NOTE** In browsers, only one file chooser can be opened at a time.
* All file choosers must be accepted or canceled. Not doing so will prevent
* subsequent file choosers from appearing.
*/
export class FileChooser {
private _element: ElementHandle;
private _multiple: boolean;
private _handled = false;

/**
* @internal
*/
constructor(
element: ElementHandle,
event: Protocol.Page.fileChooserOpenedPayload
Expand All @@ -31,10 +51,18 @@ export class FileChooser {
this._multiple = event.mode !== 'selectSingle';
}

/**
* Whether file chooser allow for {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-multiple | multiple} file selection.
*/
isMultiple(): boolean {
return this._multiple;
}

/**
* Accept the file chooser request with given paths.
* @param filePaths - If some of the `filePaths` are relative paths,
* then they are resolved relative to the {@link https://nodejs.org/api/process.html#process_process_cwd | current working directory}.
*/
async accept(filePaths: string[]): Promise<void> {
assert(
!this._handled,
Expand All @@ -44,6 +72,9 @@ export class FileChooser {
await this._element.uploadFile(...filePaths);
}

/**
* Closes the file chooser without selecting any files.
*/
async cancel(): Promise<void> {
assert(
!this._handled,
Expand Down

0 comments on commit 60904da

Please sign in to comment.