aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/ImageBox.tsx
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2025-04-23 15:29:26 -0400
committerbobzel <zzzman@gmail.com>2025-04-23 15:29:26 -0400
commit0d758430301d934a465ea090abf41f4a596a146c (patch)
tree5104210ee6e3014f2b086da92643f5222b3cf4a2 /src/client/views/nodes/ImageBox.tsx
parent6be2ce925e3a0ba1e88e568ddbc57e3a272e6ff0 (diff)
fixed outpainting to get authorization for dropbox
Diffstat (limited to 'src/client/views/nodes/ImageBox.tsx')
-rw-r--r--src/client/views/nodes/ImageBox.tsx55
1 files changed, 28 insertions, 27 deletions
diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx
index 1fcabaf21..9c6b8e99c 100644
--- a/src/client/views/nodes/ImageBox.tsx
+++ b/src/client/views/nodes/ImageBox.tsx
@@ -140,7 +140,6 @@ export class ImageBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
};
componentDidMount() {
- super.componentDidMount?.();
this._disposers.sizer = reaction(
() => ({
forceFull: this._props.renderDepth < 1 || this.layoutDoc._showFullRes,
@@ -426,38 +425,40 @@ export class ImageBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
newDimensions: { width: newWidth, height: newHeight },
});
- const batch = UndoManager.StartBatch('outpaint image');
- if (response && typeof response === 'object' && 'url' in response && typeof response.url === 'string') {
- console.log('Received outpainted image:', response.url);
-
- if (!this.dataDoc[this.fieldKey + '_alternates']) {
- this.dataDoc[this.fieldKey + '_alternates'] = new List<Doc>();
- }
+ const error = ('error' in response && (response.error as string)) || '';
+ if (error.includes('Dropbox') && confirm('Outpaint image failed. Try authorizing DropBox?\r\n' + error.replace(/^[^"]*/, ''))) {
+ DrawingFillHandler.authorizeDropbox();
+ } else {
+ const batch = UndoManager.StartBatch('outpaint image');
+ if (response && typeof response === 'object' && 'url' in response && typeof response.url === 'string') {
+ if (!this.dataDoc[this.fieldKey + '_alternates']) {
+ this.dataDoc[this.fieldKey + '_alternates'] = new List<Doc>();
+ }
- const originalDoc = Docs.Create.ImageDocument(field.url.href, {
- title: `Original: ${this.Document.title}`,
- _nativeWidth: Doc.NativeWidth(this.dataDoc),
- _nativeHeight: Doc.NativeHeight(this.dataDoc),
- });
+ const originalDoc = Docs.Create.ImageDocument(field.url.href, {
+ title: `Original: ${this.Document.title}`,
+ _nativeWidth: Doc.NativeWidth(this.dataDoc),
+ _nativeHeight: Doc.NativeHeight(this.dataDoc),
+ });
- Doc.AddDocToList(this.dataDoc, this.fieldKey + '_alternates', originalDoc);
+ Doc.AddDocToList(this.dataDoc, this.fieldKey + '_alternates', originalDoc);
- // Replace with new outpainted image
- this.dataDoc[this.fieldKey] = new ImageField(response.url);
+ // Replace with new outpainted image
+ this.dataDoc[this.fieldKey] = new ImageField(response.url);
- Doc.SetNativeWidth(this.dataDoc, newWidth);
- Doc.SetNativeHeight(this.dataDoc, newHeight);
+ Doc.SetNativeWidth(this.dataDoc, newWidth);
+ Doc.SetNativeHeight(this.dataDoc, newHeight);
- this.Document.$ai = true;
- this.Document.$ai_outpainted = true;
- this.Document.$ai_outpaint_prompt = customPrompt;
- } else {
- console.error('Unexpected API response:', response);
- this.Document._width = origWidth;
- this.Document._height = origHeight;
- alert('Failed to receive a valid image URL from server.');
+ this.Document.$ai = true;
+ this.Document.$ai_outpainted = true;
+ this.Document.$ai_outpaint_prompt = customPrompt;
+ } else {
+ this.Document._width = origWidth;
+ this.Document._height = origHeight;
+ alert('Failed to receive a valid image URL from server.');
+ }
+ batch.end();
}
- batch.end();
this._mainCont?.removeChild(loadingOverlay);
} catch (error) {