Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@typeform/button
Advanced tools
Integrate Typeform Admin UI in your web app - as an iframe or a popup.
Integrate Typeform Admin UI in your web app - as an iframe or a popup.
[!WARNING] Please keep in mind this is an early version, and we provide limited support at the moment.
As HTML button:
<button data-tf-embed-admin-select data-tf-embed-admin-callback="handleSelect">select typeform</button>
<script src="//btn.typeform.com/button.js"></script>
<script>
// you still need to implement the callback in JavaScript
function handleSelect({ action, formId }) {
console.log(`you have selected form with id ${formId}`)
}
</script>
Or using JavaScript:
<button onclick="selectTypeform()">select form</button>
<script src="//btn.typeform.com/button.js"></script>
<script>
// you only need to configure settings once
window.tfEmbedAdmin.setDefaultConfiguration({ type: 'iframe' })
const callback = ({ action, formId }) => {
console.log(`you have selected form with id ${formId}`)
}
const selectTypeform = () => {
window.tfEmbedAdmin.selectForm({ callback })
}
</script>
Install the package as dependency via yarn
:
yarn add @typeform/button
Then you can use the SDK in your own application, e.g. in React:
import { selectForm } from '@typeform/button'
export const SelectFormButton = () => {
const handleSelect = () => {
selectForm({
callback: ({ action, formId }) => console.log(`you just selected form id: ${formId}`),
})
}
return <button onClick={handleSelect}>select form</button>
}
There are 3 available methods:
Configure the embed admin settings.
It accepts an object with the following props:
name | type | description | default value |
---|---|---|---|
type | "iframe" | "popup" | Open embed admin in popup (default) or iframe. Note: If you want to implement iframe, please contact us to get your domain allowed. | "popup" |
appName | string | Application name | window.location.hostname |
Example with JavaScript:
window.tfEmbedAdmin.setDefaultConfiguration({
type: 'iframe',
appName: 'my-app',
})
When using HTML API you don't need to call this method separately. You need to specify config options on the button itself.
Open embed admin to select form or create a new one.
It accepts an object with the following props:
name | type | description |
---|---|---|
callback | (payload: { action: string, formId: string, fetchFormDetails: () => Promise<{}> }) => void | Method to be called when a form is selected in Typeform Admin UI. |
type | "iframe" | "popup" | Optional. See setDefaultConfiguration above. |
appName | string | Optional. See setDefaultConfiguration above. |
Example with JavaScript:
window.tfEmbedAdmin.selectForm({
callback: ({ action, formId, fetchFormDetails }) => console.log(`you just selected form id: ${formId}`),
})
Or with HTML API:
<button
data-tf-embed-admin-select
data-tf-embed-admin-type="iframe"
data-tf-embed-admin-app-name="my-app"
data-tf-embed-admin-callback="embedAdminCallback"
>
select typeform
</button>
<script>
function embedAdminCallback({ action, formId, fetchFormDetails }) {
// callback function needs to be available on global scope (window)
}
</script>
Open embed admin to edit a specific form.
It accepts an object with the following props:
name | type | description |
---|---|---|
formId | string | ID of the typeform to edit |
callback | (payload: { action: string, formId: string, fetchFormDetails: () => Promise<{}> }) => void | Method to be called when a form is edited in Typeform Admin UI. |
type | "iframe" | "popup" | Optional. See setDefaultConfiguration above. |
appName | string | Optional. See setDefaultConfiguration above. |
Example with JavaScript:
window.tfEmbedAdmin.editForm({
formId: myTypeformId,
callback: ({ action, formId, fetchFormDetails }) => console.log(`you just edited form id: ${formId}`),
})
Or with HTML API:
<button
data-tf-embed-admin-edit="123456"
data-tf-embed-admin-type="iframe"
data-tf-embed-admin-app-name="my-app"
data-tf-embed-admin-callback="embedAdminCallback"
>
edit typeform
</button>
<script>
function embedAdminCallback({ action, formId, fetchFormDetails }) {
// callback function needs to be available on global scope (window)
}
</script>
The callback receives fetchFormDetails
async method in the payload. You can use this method to fetch details about currently selected / edited form. It returns title
, url
and imageUrl
of the meta image.
Usage:
window.tfEmbedAdmin.selectForm({
callback: async ({ action, formId, fetchFormDetails }) => {
const { title, url } = await fetchFormDetails()
console.log(`You selected form named ${title}. You can visit it at ${url}.`)
},
})
Run:
yarn start
Demo implementation of the library will be served at http://localhost:1337
Or open the demo in CodeSandbox, directly in your browser.
Note: Examples with iframe only work on localhost.
Requirements:
Install dependencies:
yarn
For local development run:
yarn watch
or with demo:
yarn start
Please keep in mind this is an early version, and we provide limited support at the moment.
However, feel free to open a Github Issue with your question, we are open to discussion.
FAQs
Integrate Typeform Admin UI in your web app - as an iframe or a popup.
We found that @typeform/button demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.