Skip to content

Commit

Permalink
Add retool type definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
Flaviu Tamas committed Nov 29, 2023
1 parent 159180f commit 2abf950
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 2 deletions.
13 changes: 11 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
"url": "https://github.com/tryretool/react-retool/blob/main/LICENSE"
}
],
"types": "Retool.d.ts",
"main": "Retool.js",
"type": "commonjs",
"keywords": [
"react",
"react-component",
Expand All @@ -37,14 +40,20 @@
},
"peerDependencies": {
"react": ">=17.0.0",
"react-dom": ">=17.0.0"
"react-dom": ">=17.0.0",
"@types/react": ">=17.0.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"publish:npm": "rm -rf dst && mkdir dst && babel src/components -d dst --copy-files && mv ./dst/Retool.js ./dst/index.js && cp ./package.json ./dst/package.json && cp ./README.md ./dst/README.md"
"publish:npm": "babel src/components --copy-files --extensions .js,.jsx -d dst --source-maps && cp ./package.json ./dst/package.json && cp ./README.md ./dst/README.md"
},
"eslintConfig": {
"extends": [
Expand Down
48 changes: 48 additions & 0 deletions src/components/Retool.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import * as React from 'react';

export interface RetoolProps<T> {
/**
* url prop pointing to an embedded Retool application. You can generate this URL in the editor
* mode of a Retool app by clicking "Share" then "Public".
*/
url: string
/**
* an optional data object, which is made available to the embedded application. When an embedded
* Retool application runs a Parent Window Query, <Retool> will check if data contains a key
* matching the Parent Window Query's selector, and if so, return that value to the query.
*/
data?: Record<string, T>
/**
* optional height and width props which will be used for the dimensions of the embedded window.
*/
height?: string | number
/**
* optional height and width props which will be used for the dimensions of the embedded window.
*/
width?: string | number
/**
* optional onData callback that will be called with the data of an event that is sent from the
* embedded Retool app. These events can be sent from a JavaScript query inside of Retool by using
* the parent.postMessage() syntax.
*/
onData?: (data: T) => void
/**
* optional sandbox parameter to configure permissions of the iframe used to embed the Retool
* app. allow-scripts and allow-same-origin are required in order to run Retool, so if sandbox is
* specified, allow-scripts and allow-same-origin will always be appended to ensure the Retool app
* works.
*/
sandbox?: boolean | string
/**
* optional allow parameter to configure permissions of the iframe used to embed the Retool app.
*/
allow?: string
/**
* optional styling prop object that can be used to pass in styles to the iframe component.
*/
styling?: React.CSSProperties
}

declare const Retool: <T> (props: RetoolProps<T>) => React.ReactElement

export default Retool
Empty file removed src/components/retool.css
Empty file.

0 comments on commit 2abf950

Please sign in to comment.