109 |
110 |
111 | {" "}
114 | {" "}
117 | {" "}
120 |
123 |
124 |
125 |
126 |
console.log("FOCUS"),
136 | blur: () => console.log("BLUR"),
137 | paste: () => console.log("PASTE"),
138 | touchstart: () => console.log("TOUCH START"),
139 | }}
140 | onSave={options => console.log("Save triggered", options)}
141 | onCancel={() => console.log("Cancel triggered")}
142 | onChange={this.handleChange}
143 | onClickLink={(href, event) =>
144 | console.log("Clicked link: ", href, event)
145 | }
146 | onHoverLink={event => {
147 | console.log("Hovered link: ", event.target.href);
148 | return false;
149 | }}
150 | onClickHashtag={(tag, event) =>
151 | console.log("Clicked hashtag: ", tag, event)
152 | }
153 | onCreateLink={title => {
154 | // Delay to simulate time taken for remote API request to complete
155 | return new Promise((resolve, reject) => {
156 | setTimeout(() => {
157 | if (title !== "error") {
158 | return resolve(
159 | `/doc/${encodeURIComponent(title.toLowerCase())}`
160 | );
161 | } else {
162 | reject("500 error");
163 | }
164 | }, 1500);
165 | });
166 | }}
167 | onShowToast={(message, type) => window.alert(`${type}: ${message}`)}
168 | onSearchLink={async term => {
169 | console.log("Searched link: ", term);
170 |
171 | // Delay to simulate time taken for remote API request to complete
172 | return new Promise(resolve => {
173 | setTimeout(() => {
174 | resolve(
175 | docSearchResults.filter(result =>
176 | result.title.toLowerCase().includes(term.toLowerCase())
177 | )
178 | );
179 | }, Math.random() * 500);
180 | });
181 | }}
182 | uploadImage={file => {
183 | console.log("File upload triggered: ", file);
184 |
185 | // Delay to simulate time taken to upload
186 | return new Promise(resolve => {
187 | setTimeout(() => resolve("https://picsum.photos/600/600"), 1500);
188 | });
189 | }}
190 | embeds={[
191 | {
192 | title: "YouTube",
193 | keywords: "youtube video tube google",
194 | icon: () => (
195 |
200 | ),
201 | matcher: url => {
202 | return url.match(
203 | /(?:https?:\/\/)?(?:www\.)?youtu\.?be(?:\.com)?\/?.*(?:watch|embed)?(?:.*v=|v\/|\/)([a-zA-Z0-9_-]{11})$/i
204 | );
205 | },
206 | component: YoutubeEmbed,
207 | },
208 | ]}
209 | dark={this.state.dark}
210 | autoFocus
211 | />
212 |
213 | );
214 | }
215 | }
216 |
217 | if (element) {
218 | ReactDOM.render(