1.8.0 • Published 3 months ago

@rpldy/upload-paste v1.8.0

Weekly downloads
41
License
MIT
Repository
github
Last release
3 months ago

Upload Paste

The main feature is the withPasteUpload HOC, which allows any component to become a trigger of paste-to-upload. A user pasting (ctrl/cmd+v) a file or files while focused on the element will trigger an upload

The best place to get started is at our: React-Uploady Documentation Website

Installation

#Yarn: 
   $ yarn add @rpldy/uploady @rpldy/upload-paste 

#NPM:
   $ npm i @rpldy/uploady @rpldy/upload-paste   

withPasteUpload

withPasteUpload(ComponentType) => React.FC

PasteProps

Name (* = mandatory)TypeDefaultDescription
idstringundefinedid attribute to pass to the button element
classNamestringundefinedthe class attribute to pass to the button element
childrenReact.Nodeundefinedchild element(s) to render inside the button (replaces text)
extraPropsObjectundefinedany other props to pass to the wrapped component (with spread)
refReact refundefinedwill be passed to the button element to acquire a ref
onPasteUploadPasteUploadHandlerundefinedfunction called when paste to upload occurs

In addition, most UploadOptions props can be passed to the component returned from calling withPasteUpload. In order to override configuration passed to the parent Uploady component. See Uploady documentation for detailed list of upload options.

Example

import React from "react";
import styled from "styled-components";
import Uploady from "@rpldy/uploady";
import withPasteUpload from "@rpldy/upload-paste";

const SimpleContainer = styled.div`   
    width: 400px;
    height: 400px;   
`;

const PasteArea = withPasteUpload(SimpleContainer);

const MyApp = () => {
    const onPasteUpload = useCallback(({ count }) => {
        console.log("PASTE-TO-UPLOAD file count: ", count);
    }, []);
    
	return <Uploady destination={{ url: "my-server.com/upload" }}>
        <PasteArea onPasteUpload={onPasteUpload} autoUpload={false}>
            Paste file here to upload
        </PasteArea>
    </Uploady>;
};

Hooks

usePasteUpload

(uploadOptions: UploadOptions, element: React.RefObject, onPasteUpload: PasteUploadHandler) => { toggle: () => boolean, getIsEnabled: () => boolean }

The hook makes it possible to enable paste listening for file(s) on the window (so paste anywhere) or on a specific element (by passing a ref)

import React from "react";
import Uploady from "@rpldy/uploady";
import { usePasteUpload } from "@rpldy/upload-paste";

const ElementPaste = (props) => {
    const containerRef = useRef(null);

    const onPasteUpload = useCallback(({ count }) => {
        console.log("ELEMENT PASTE-TO-UPLOAD files: ", count);
    }, []);

    const { toggle, getIsEnabled } = usePasteUpload(props, containerRef, onPasteUpload);

    //toggle can be used in a button click handler to turn paste listening on/off
    
    return <>
        <div ref={containerRef}>
            Click here & Paste a file
            Paste is: {getIsEnabled() ? "enabled" : "disabled"}
        </div>
    </>;
};


const MyApp = () => {
    return <Uploady destination={{ url: "my-server.com/upload" }}>
        <ElementPaste autoUpload={false} params={{ test: "paste" }}/>
    </Uploady>;
};
1.8.0

3 months ago

1.8.0-rc.0

3 months ago

1.7.1

5 months ago

1.7.0

5 months ago

1.7.0-rc.1

5 months ago

1.7.0-rc.0

5 months ago

1.6.1

6 months ago

1.6.0

7 months ago

1.6.0-rc.0

7 months ago

1.5.0-rc.0

8 months ago

1.5.0-rc.1

8 months ago

1.5.0-rc.2

8 months ago

1.5.0-rc.3

8 months ago

1.5.0-rc.4

8 months ago

1.5.0-rc.5

8 months ago

1.5.0

8 months ago

1.6.1-rc.2

6 months ago

1.6.1-rc.0

6 months ago

1.6.1-rc.1

6 months ago

1.4.2-alpha.0

1 year ago

1.4.1

1 year ago

1.4.1-rc.0

1 year ago

1.4.0

1 year ago

1.4.0-rc.0

1 year ago

1.4.0-rc.1

1 year ago

1.3.1

1 year ago

1.2.0

2 years ago

1.3.0

1 year ago

1.3.0-rc.2

2 years ago

1.3.0-rc.3

1 year ago

1.3.0-rc.0

2 years ago

1.3.0-rc.1

2 years ago

1.1.0

2 years ago

1.0.1

2 years ago

1.1.0-rc.1

2 years ago

1.1.0-rc.0

2 years ago

1.0.0

2 years ago

0.18.3

2 years ago

0.18.1

2 years ago

0.18.2

2 years ago

0.18.0

2 years ago

0.17.2

2 years ago

0.17.3

2 years ago

0.17.4

2 years ago

0.17.5

2 years ago

0.17.0

2 years ago

0.16.1

2 years ago

0.17.1

2 years ago

0.16.2

2 years ago

0.15.0

2 years ago

0.16.0

2 years ago

0.14.2

3 years ago

0.14.0

3 years ago

0.14.1

3 years ago

0.13.6

3 years ago

0.13.5

3 years ago

0.13.4

3 years ago

0.13.3

3 years ago

0.13.1

3 years ago

0.13.2

3 years ago

0.13.0

3 years ago

0.12.1

3 years ago

0.12.0

3 years ago

0.11.5

3 years ago

0.11.6

3 years ago

0.11.4

3 years ago

0.11.2

3 years ago

0.11.3

3 years ago

0.11.3-alpha.0

3 years ago

0.11.2-alpha.0

3 years ago

0.11.1

3 years ago

0.11.0

3 years ago