mirror of
https://github.com/plausible/analytics.git
synced 2024-12-22 09:01:40 +03:00
c95d375839
* chore(make): convenience commands for installation & dev server * docs: easier development env instructions * docs: add note about docker volumes * docs: detail pre-commit configuration * style: eslint and prettier changes * Allow for passing custom classes to fade-in * style: eslint & prettier for the details button component * style: react lifecycle methods to come first * docs: add instructions to disable pre-commit * style: devices components * Move render methods to the last (together) in the order list * Remove unused component import * React lifecycle to come first before our own methods * General styling and eslint changes * Cleaner renderContent method using switch/case (fixes an eslint error as well!) * Cleaner renderPill method with proper spacing + removing uncessary else * style: more eslint/prettier for pages components * Use newer Fragment syntax * Remove unnecessary else statement * Use backtick strings for concatenating strings * Remove unnecessary space * Remove unused imports and variable declarations * Bunch render methods together as last in the order list * fix: details button to drop to the bottom naturally on smaller screens This _mostly_ fixes one of the issues being tracked on #972, titled "Details button issue on Firefox specifically" * refactor: reduce usage of our CSS class in favor of tailwind's util classes * refactor: remove our css classes in favor of Tailwind's util classes
33 lines
685 B
JavaScript
33 lines
685 B
JavaScript
import React from 'react';
|
|
|
|
export default class extends React.Component {
|
|
componentDidMount() {
|
|
this.observer = new IntersectionObserver((entries) => {
|
|
if (entries[0].isIntersecting) {
|
|
this.props.onVisible && this.props.onVisible()
|
|
this.observer.unobserve(this.element);
|
|
}
|
|
}, {
|
|
threshold: 0
|
|
});
|
|
|
|
this.observer.observe(this.element);
|
|
}
|
|
|
|
componentWillUnmount() {
|
|
this.observer.unobserve(this.element);
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<div
|
|
ref={(el) => { this.element = el }}
|
|
className={this.props.className}
|
|
style={this.props.style}
|
|
>
|
|
{this.props.children}
|
|
</div>
|
|
);
|
|
}
|
|
}
|