From e45bbd8a256fc49aced3d331437fd3de9409d3c3 Mon Sep 17 00:00:00 2001 From: Mike Fix Date: Fri, 24 Aug 2018 10:07:18 -0700 Subject: [PATCH] postMessage to parent window --- pages/embed.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pages/embed.js b/pages/embed.js index 0c5dff7..21e602b 100644 --- a/pages/embed.js +++ b/pages/embed.js @@ -3,14 +3,16 @@ import React from 'react' import Head from 'next/head' import { withRouter } from 'next/router' import url from 'url' +import morph from 'morphmorph' // Ours import { StylesheetLink, CodeMirrorLink, MetaTags } from '../components/Meta' import Carbon from '../components/Carbon' import { DEFAULT_CODE, DEFAULT_SETTINGS } from '../lib/constants' - import { getQueryStringState } from '../lib/routing' +const isInIFrame = morph.get('parent.window.parent') + const Page = props => ( @@ -49,13 +51,26 @@ class Embed extends React.Component { this.setState({ ...initialState, + id: query.id, copyable: queryParams.copy !== false, readOnly: queryParams.readonly !== false, mounted: true }) } - updateCode = code => this.setState({ code }) + updateCode = code => { + this.setState({ code }) + + if (isInIFrame(window)) { + window.parent.window.parent.postMessage( + { + id: this.state.id || 'carbon', + code + }, + '*' + ) + } + } render() { return (