first pass through using the EE licensed replay transformer in playback
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: David Newell <d.newell1@outlook.com>
* feat(hogql): errors for large select input
* parse syntax error positions better
* fix metadata test
* this was causing tooltips to hide
* one less hook
* disable if error
* typegen alias
* add lottie-react
* test loading states
* add new animations
* adopt the laptophog as the loadinghog
* handle opacity via a class
* move all lottiefiles to lib/animations
* new animation component
* add storybook
* use sportshog and laptophog animations for loading
* jest also wants to ignore these files
* clarify text
* support canvas in jsdom / jest
* add width/height to animations
* clarify
* use a mocked canvas instead of installing new debian packages to get this to compile
* I posted a wrong answer on the internet
Co-authored-by: Michael Matloka <dev@twixes.com>
* chore(frontend): yeet sass vars, starting with $default_spacing
* more css vars
* refactor the third axis of evil
* even more refactored vars
* deprecate scss color transformations
* remove ~/vars imports
* add back a few imports to get sass mixins working
* separate vars and mixins
* even more var refactor
* simplify build
* don't rely on node_modules aliases
* Prevent `.text-ellipsis` from being included multiple times
* Refactor last `~/vars` out
* Fix `--text-muted-alt`
* Restore `-alt` in `DropdownSelector.scss`
* Fix `.ma`
* Fix `--depr-purple-300`
* Prefix Sass vars with `_` to mark them as internal
* Add `--font-semibold`
Co-authored-by: Michael Matloka <dev@twixes.com>
* chore(static-assets): set JS_URL for ECS
This is the breakaway change
[here](https://github.com/PostHog/posthog/pull/8299#pullrequestreview-864974223)
This will need to be merged in before the other change, as otherwise we
will end up using the default of /static/ to serve up the frontend in
production.
* chore(js-loading): Make JS_URL be used at runtime for js loading
Previously we would bake the JS_URL in at build time. Instead this
changes such that we can change this at runtime by specifying a `JS_URL`
env variable.
* comment on css loader snippet
* Default js_url to /
* Leave leading / when concatenating to JS_URL
I'd accidentally left this out before
* Remove trailing forward-slash from `JS_URL` django setting
Prior to the change to make JS_URL applicable at runtime, this variable
had no effect, hence the railing slash wasn't an issue.
This change fixes the frontend when running with debug true, i.e. when
we should be using the dev server for serving the frontend
* remove trailing slashes from JS_URL
* avoid unexpected concat behaviour
* add some comments around style sheet loading
* explicitly handle JS_URL not set for css as well
* use chunked entrypoints when possible
* shared dashboard entrypoints
* refactor createHashlessEntrypoints
* extract parallel building logic
* clean html writing function
* improve clarity
* Stable ordering for group types
* Update breadcrumbs logic to work with groups pages
* Solution no 2
* move breadcrumb titles into individual logics
* breadcrumbs for actions
* breadcrumbs for feature flags
* breadcrumbs for dashboards, insights, persons
* breadcrumbs for groups
* unify names
* breadcrumbs into the logic
* Fix persons breadcrumb, remove unused `here`, clarify `lastBreadcrumbs`
Co-authored-by: Marius Andra <marius.andra@gmail.com>
Co-authored-by: Michael Matloka <dev@twixes.com>
* Set JS_URL for cloud
* use STATIC_HOST over JS_HOST
* use STATIC_HOST over JS_HOST
* use static assets for head
* back to JS_URL
* tweak utils.mjs
* format
* pretty it up
* preload chunks when loading esbuild scenes
* fix TS error
* fix license title
* fix scene identifiers in menu
* lowercase data-attr
* make the events menu have the old data-attr
* change var name to clarify its usage
* esbuild package
* almost get esbuild working
* fix react-virtualized imports
* add splitting
* fix funny import reorder bug
* fix squeakAudio referring to itself
* write index.html file
* fix some bad imports
* update antd paths
* remove raw-loader usage, it didn't work anyway
* refactor and copy public
* build app and toolbar
* get toolbar working, but without styles
* make toolbar and its styles work
* shared dashboards
* clean frontend build before rebuilding
* add watch mode
* reorder tasks
* revert js url
* incremental builds of app with debounced chokidar watching
* common build/watch script
* improve logs
* watch during firrst build
* fix toolbar url
* fix wrongly exported scene
* create sceneProxyLogic to untangle sceneLogic from all bundles
* disconnect sceneLogic and refactor setPageTitle
* live reloading server
* rename utils file
* only wait for /static
* fix encoding
* simplify
* add missing dayjs plugins
* fix pathless logics
* simplify options
* add jsx for webapck
* slight delay to catch changes
* a type is a type
* fix build
* esbuild in start
* funnelLogic path
* include all files with a "." (so .mjs, etc) in /frontend/ to docker
* rename to "utils.mjs", make "build.mjs" executable
* improve erroring
* revert some needless changes
* more reverts
* change some scripts
* remove setuff
* clarify function
* make "--host 0.0.0.0" work
* fix import order issue in webpack
* remove webpack css inlining for toolbar to simplify config
* make toolbar with external styles work in storybook
* move live server injection into django
* fix undefined bug
* simplify setup to work with injection directly in http://localhost:8000 (no proxying needed on :8234)
* add comments
* Fix `fse` usage
I was getting this otherwise:
$ node frontend/build.mjs
file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46
fse.copySync(srcDir, destDir, { overwrite: true }, function (err) {
^
TypeError: fse.copySync is not a function
at copyPublicFolder (file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46:9)
at file:///Users/twixes/Developer/posthog/frontend/build.mjs:5:1
at ModuleJob.run (internal/modules/esm/module_job.js:146:23)
at async Loader.import (internal/modules/esm/loader.js:165:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5)
* Mock `process` for VFile used by ReactMarkdown
I was getting this otherwise:
core.js:55 Uncaught ReferenceError: process is not defined
at new VFile (core.js:55)
at VFile (core.js:49)
at Function.parse (index.js:273)
at ReactMarkdown2 (react-markdown.js:42)
at renderWithHooks (react-dom.development.js:14803)
at mountIndeterminateComponent (react-dom.development.js:17482)
at beginWork (react-dom.development.js:18596)
at HTMLUnknownElement.callCallback2 (react-dom.development.js:188)
at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
at invokeGuardedCallback (react-dom.development.js:292)
* Mock `process.env` for VFile used by ReactMarkdown
I was getting this otherwise:
platform.ts:73 Uncaught TypeError: Cannot read properties of undefined (reading 'ENABLE_VSCODE_BROWSER_CODE_LOADING')
at platform.ts:73
at platform.ts:79
at Function.r._invokeFactory (loader.js:1118)
at r.complete (loader.js:1128)
at r._onModuleComplete (loader.js:1754)
at r._resolve (loader.js:1714)
at r.defineModule (loader.js:1357)
at _ (loader.js:1804)
at numbers.ts:10
at fake:1
* pass the heavy appScenes to sceneLogic through props via App.tsx
* remove sceneProxyLogic
* remove exported variables
* fix sceneLogic test
Co-authored-by: Michael Matloka <dev@twixes.com>