move organization of sheets in preparation for per-actor-type sheets
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
import DG from "../config.js";
|
||||
|
||||
const HbsAppMixin = foundry.applications.api.HandlebarsApplicationMixin;
|
||||
|
||||
const DGSheetMixin = (Base) => {
|
||||
return class DGDocumentSheet extends HbsAppMixin(Base) {
|
||||
/** @inheritdoc */
|
||||
static DEFAULT_OPTIONS = /** @type {const} */ ({
|
||||
window: { resizable: true },
|
||||
classes: [DG.ID, "sheet"],
|
||||
form: { submitOnChange: true },
|
||||
});
|
||||
|
||||
/** @inheritdoc */
|
||||
static TEMPLATE_PATH = /** @type {const} */ (`systems/${DG.ID}/templates`);
|
||||
|
||||
static get THEME() {
|
||||
return game.settings.get(DG.ID, "characterSheetStyle");
|
||||
}
|
||||
|
||||
get THEME() {
|
||||
return this.constructor.THEME;
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
async _prepareContext(options) {
|
||||
const context = await super._prepareContext(options);
|
||||
const docName = this.document.documentName.toLowerCase();
|
||||
|
||||
// Add the document to the context under a descriptive name (i.e. "actor", "item")
|
||||
context[docName] = this.document;
|
||||
|
||||
return context;
|
||||
}
|
||||
/** @inheritdoc */
|
||||
|
||||
async _onFirstRender(context, options) {
|
||||
await super._onFirstRender(context, options);
|
||||
|
||||
const html = this.element;
|
||||
html
|
||||
.querySelector(".window-content")
|
||||
.classList.add(`${this.THEME}-style`);
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
async _onRender(context, options) {
|
||||
await super._onRender(context, options);
|
||||
|
||||
const html = this.element;
|
||||
|
||||
// Double-click resize handle to reset sheet to original size.
|
||||
html
|
||||
.querySelector(".window-resize-handle")
|
||||
.addEventListener("dblclick", () => {
|
||||
this.resetPosition();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the window's position to its default, as specified in the Sheet's options.
|
||||
* @returns {void}
|
||||
*/
|
||||
resetPosition() {
|
||||
this.setPosition(this.options.position);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export default DGSheetMixin;
|
||||
Reference in New Issue
Block a user