![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@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.
The npm package @typeform/button receives a total of 4 weekly downloads. As such, @typeform/button popularity was classified as not popular.
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.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.