mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
add hooks for tweaking how downloads happen (for grist-static) (#665)
This makes three main changes:
* Adds a hook to transform download links.
* Adds a hook to add an externally created ActiveDoc to a DocManager.
* Rejiggers XLSX export code so it can be used without streaming,
which is currently tricky in a browser. Regular usage with node
continues to use streaming.
With these changes, I have a POC in hand that updates grist-static
to support downloading CSVs, XLSXs, and .grist files.
This commit is contained in:
@@ -1,11 +1,22 @@
|
||||
import { UrlTweaks } from 'app/common/gristUrls';
|
||||
import { IAttrObj } from 'grainjs';
|
||||
|
||||
export interface IHooks {
|
||||
iframeAttributes?: Record<string, any>,
|
||||
fetch?: typeof fetch,
|
||||
baseURI?: string,
|
||||
urlTweaks?: UrlTweaks,
|
||||
|
||||
/**
|
||||
* Modify the attributes of an <a> dom element.
|
||||
* Convenient in grist-static to directly hook up a
|
||||
* download link with the function that provides the data.
|
||||
*/
|
||||
maybeModifyLinkAttrs(attrs: IAttrObj): IAttrObj;
|
||||
}
|
||||
|
||||
export const defaultHooks: IHooks = {
|
||||
maybeModifyLinkAttrs(attrs: IAttrObj) {
|
||||
return attrs;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user