remove snow
This commit is contained in:
parent
ea2ea41f2d
commit
8c5c29ee45
@ -19,7 +19,7 @@ import LightningIcon from '../svgs/bolt.svg'
|
|||||||
import SearchIcon from '../svgs/search-line.svg'
|
import SearchIcon from '../svgs/search-line.svg'
|
||||||
import BackArrow from '../svgs/arrow-left-line.svg'
|
import BackArrow from '../svgs/arrow-left-line.svg'
|
||||||
import { BALANCE_LIMIT_MSATS, SSR } from '../lib/constants'
|
import { BALANCE_LIMIT_MSATS, SSR } from '../lib/constants'
|
||||||
import { useSnow } from './snow'
|
import { useLightning } from './lightning'
|
||||||
import { HAS_NOTIFICATIONS } from '../fragments/notifications'
|
import { HAS_NOTIFICATIONS } from '../fragments/notifications'
|
||||||
import AnonIcon from '../svgs/spy-fill.svg'
|
import AnonIcon from '../svgs/spy-fill.svg'
|
||||||
import Hat from './hat'
|
import Hat from './hat'
|
||||||
@ -172,12 +172,12 @@ function StackerCorner ({ dropNavKey }) {
|
|||||||
|
|
||||||
function LurkerCorner ({ path }) {
|
function LurkerCorner ({ path }) {
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const snow = useSnow()
|
const strike = useLightning()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!window.localStorage.getItem('striked')) {
|
if (!window.localStorage.getItem('striked')) {
|
||||||
const to = setTimeout(() => {
|
const to = setTimeout(() => {
|
||||||
snow()
|
strike()
|
||||||
window.localStorage.setItem('striked', 'yep')
|
window.localStorage.setItem('striked', 'yep')
|
||||||
}, randInRange(3000, 10000))
|
}, randInRange(3000, 10000))
|
||||||
return () => clearTimeout(to)
|
return () => clearTimeout(to)
|
||||||
|
@ -10,12 +10,12 @@ import LongPressable from 'react-longpressable'
|
|||||||
import Overlay from 'react-bootstrap/Overlay'
|
import Overlay from 'react-bootstrap/Overlay'
|
||||||
import Popover from 'react-bootstrap/Popover'
|
import Popover from 'react-bootstrap/Popover'
|
||||||
import { useShowModal } from './modal'
|
import { useShowModal } from './modal'
|
||||||
|
import { LightningConsumer, useLightning } from './lightning'
|
||||||
import { numWithUnits } from '../lib/format'
|
import { numWithUnits } from '../lib/format'
|
||||||
import { payOrLoginError, useInvoiceModal } from './invoice'
|
import { payOrLoginError, useInvoiceModal } from './invoice'
|
||||||
import useDebounceCallback from './use-debounce-callback'
|
import useDebounceCallback from './use-debounce-callback'
|
||||||
import { useToast } from './toast'
|
import { useToast } from './toast'
|
||||||
import { Dropdown } from 'react-bootstrap'
|
import { Dropdown } from 'react-bootstrap'
|
||||||
import { SnowConsumer, useSnow } from './snow'
|
|
||||||
|
|
||||||
const UpvotePopover = ({ target, show, handleClose }) => {
|
const UpvotePopover = ({ target, show, handleClose }) => {
|
||||||
const me = useMe()
|
const me = useMe()
|
||||||
@ -128,7 +128,7 @@ export default function UpVote ({ item, className, pendingSats, setPendingSats }
|
|||||||
const [tipShow, _setTipShow] = useState(false)
|
const [tipShow, _setTipShow] = useState(false)
|
||||||
const ref = useRef()
|
const ref = useRef()
|
||||||
const me = useMe()
|
const me = useMe()
|
||||||
const snow = useSnow()
|
const strike = useLightning()
|
||||||
const toaster = useToast()
|
const toaster = useToast()
|
||||||
const [setWalkthrough] = useMutation(
|
const [setWalkthrough] = useMutation(
|
||||||
gql`
|
gql`
|
||||||
@ -171,8 +171,8 @@ export default function UpVote ({ item, className, pendingSats, setPendingSats }
|
|||||||
const showInvoiceModal = useInvoiceModal(
|
const showInvoiceModal = useInvoiceModal(
|
||||||
async ({ hash, hmac }, { variables }) => {
|
async ({ hash, hmac }, { variables }) => {
|
||||||
await act({ variables: { ...variables, hash, hmac } })
|
await act({ variables: { ...variables, hash, hmac } })
|
||||||
snow()
|
strike()
|
||||||
}, [act, snow])
|
}, [act, strike])
|
||||||
|
|
||||||
const zap = useDebounceCallback(async (sats) => {
|
const zap = useDebounceCallback(async (sats) => {
|
||||||
if (!sats) return
|
if (!sats) return
|
||||||
@ -216,7 +216,7 @@ export default function UpVote ({ item, className, pendingSats, setPendingSats }
|
|||||||
}, [item?.meSats, item?.meAnonSats, pendingSats, me?.privates?.tipDefault, me?.privates?.turboDefault])
|
}, [item?.meSats, item?.meAnonSats, pendingSats, me?.privates?.tipDefault, me?.privates?.turboDefault])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SnowConsumer>
|
<LightningConsumer>
|
||||||
{(strike) =>
|
{(strike) =>
|
||||||
<div ref={ref} className='upvoteParent'>
|
<div ref={ref} className='upvoteParent'>
|
||||||
<LongPressable
|
<LongPressable
|
||||||
@ -285,6 +285,6 @@ export default function UpVote ({ item, className, pendingSats, setPendingSats }
|
|||||||
<TipPopover target={ref.current} show={tipShow} handleClose={() => setTipShow(false)} />
|
<TipPopover target={ref.current} show={tipShow} handleClose={() => setTipShow(false)} />
|
||||||
<UpvotePopover target={ref.current} show={voteShow} handleClose={() => setVoteShow(false)} />
|
<UpvotePopover target={ref.current} show={voteShow} handleClose={() => setVoteShow(false)} />
|
||||||
</div>}
|
</div>}
|
||||||
</SnowConsumer>
|
</LightningConsumer>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import '../styles/globals.scss'
|
import '../styles/globals.scss'
|
||||||
import '../styles/snow.scss'
|
|
||||||
import { ApolloProvider, gql } from '@apollo/client'
|
import { ApolloProvider, gql } from '@apollo/client'
|
||||||
import { MeProvider } from '../components/me'
|
import { MeProvider } from '../components/me'
|
||||||
import PlausibleProvider from 'next-plausible'
|
import PlausibleProvider from 'next-plausible'
|
||||||
@ -11,7 +10,7 @@ import { useRouter } from 'next/dist/client/router'
|
|||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
import { ShowModalProvider } from '../components/modal'
|
import { ShowModalProvider } from '../components/modal'
|
||||||
import ErrorBoundary from '../components/error-boundary'
|
import ErrorBoundary from '../components/error-boundary'
|
||||||
import { SnowProvider } from '../components/snow'
|
import { LightningProvider } from '../components/lightning'
|
||||||
import { ToastProvider } from '../components/toast'
|
import { ToastProvider } from '../components/toast'
|
||||||
import { ServiceWorkerProvider } from '../components/serviceworker'
|
import { ServiceWorkerProvider } from '../components/serviceworker'
|
||||||
import { SSR } from '../lib/constants'
|
import { SSR } from '../lib/constants'
|
||||||
@ -94,7 +93,7 @@ export default function MyApp ({ Component, pageProps: { ...props } }) {
|
|||||||
<LoggerProvider>
|
<LoggerProvider>
|
||||||
<ServiceWorkerProvider>
|
<ServiceWorkerProvider>
|
||||||
<PriceProvider price={price}>
|
<PriceProvider price={price}>
|
||||||
<SnowProvider>
|
<LightningProvider>
|
||||||
<ToastProvider>
|
<ToastProvider>
|
||||||
<ShowModalProvider>
|
<ShowModalProvider>
|
||||||
<BlockHeightProvider blockHeight={blockHeight}>
|
<BlockHeightProvider blockHeight={blockHeight}>
|
||||||
@ -106,7 +105,7 @@ export default function MyApp ({ Component, pageProps: { ...props } }) {
|
|||||||
</BlockHeightProvider>
|
</BlockHeightProvider>
|
||||||
</ShowModalProvider>
|
</ShowModalProvider>
|
||||||
</ToastProvider>
|
</ToastProvider>
|
||||||
</SnowProvider>
|
</LightningProvider>
|
||||||
</PriceProvider>
|
</PriceProvider>
|
||||||
</ServiceWorkerProvider>
|
</ServiceWorkerProvider>
|
||||||
</LoggerProvider>
|
</LoggerProvider>
|
||||||
|
@ -15,7 +15,7 @@ import { useShowModal } from '../../components/modal'
|
|||||||
import dynamic from 'next/dynamic'
|
import dynamic from 'next/dynamic'
|
||||||
import { SSR } from '../../lib/constants'
|
import { SSR } from '../../lib/constants'
|
||||||
import { useToast } from '../../components/toast'
|
import { useToast } from '../../components/toast'
|
||||||
import { useSnow } from '../../components/snow'
|
import { useLightning } from '../../components/lightning'
|
||||||
|
|
||||||
const GrowthPieChart = dynamic(() => import('../../components/charts').then(mod => mod.GrowthPieChart), {
|
const GrowthPieChart = dynamic(() => import('../../components/charts').then(mod => mod.GrowthPieChart), {
|
||||||
loading: () => <div>Loading...</div>
|
loading: () => <div>Loading...</div>
|
||||||
@ -91,7 +91,7 @@ export default function Rewards ({ ssrData }) {
|
|||||||
export function DonateButton () {
|
export function DonateButton () {
|
||||||
const showModal = useShowModal()
|
const showModal = useShowModal()
|
||||||
const toaster = useToast()
|
const toaster = useToast()
|
||||||
const snow = useSnow()
|
const strike = useLightning()
|
||||||
const [donateToRewards] = useMutation(
|
const [donateToRewards] = useMutation(
|
||||||
gql`
|
gql`
|
||||||
mutation donateToRewards($sats: Int!, $hash: String, $hmac: String) {
|
mutation donateToRewards($sats: Int!, $hash: String, $hmac: String) {
|
||||||
@ -119,7 +119,7 @@ export function DonateButton () {
|
|||||||
console.error(error)
|
console.error(error)
|
||||||
toaster.danger('failed to donate')
|
toaster.danger('failed to donate')
|
||||||
} else {
|
} else {
|
||||||
const didStrike = snow()
|
const didStrike = strike()
|
||||||
if (!didStrike) {
|
if (!didStrike) {
|
||||||
toaster.success('donated')
|
toaster.success('donated')
|
||||||
}
|
}
|
||||||
|
@ -147,8 +147,6 @@ $accordion-button-active-icon-dark: $accordion-button-icon;
|
|||||||
--theme-quoteBar: rgb(206, 208, 212);
|
--theme-quoteBar: rgb(206, 208, 212);
|
||||||
--theme-linkHover: #004a72;
|
--theme-linkHover: #004a72;
|
||||||
--theme-linkVisited: #53758;
|
--theme-linkVisited: #53758;
|
||||||
// snow
|
|
||||||
--theme-snowDropShadow: drop-shadow(0 0 4px black) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-bs-theme=dark] {
|
[data-bs-theme=dark] {
|
||||||
@ -173,8 +171,6 @@ $accordion-button-active-icon-dark: $accordion-button-icon;
|
|||||||
--theme-quoteColor: rgb(141, 144, 150);
|
--theme-quoteColor: rgb(141, 144, 150);
|
||||||
--theme-linkHover: #007cbe;
|
--theme-linkHover: #007cbe;
|
||||||
--theme-linkVisited: #56798E;
|
--theme-linkVisited: #56798E;
|
||||||
// snow
|
|
||||||
--theme-snowDropShadow: drop-shadow(0 0 10px white);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@import '../node_modules/bootstrap/scss/bootstrap.scss';
|
@import '../node_modules/bootstrap/scss/bootstrap.scss';
|
||||||
@ -354,7 +350,6 @@ mark {
|
|||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
// background: radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);
|
|
||||||
background: var(--bs-body-bg) !important;
|
background: var(--bs-body-bg) !important;
|
||||||
color: var(--bs-body-color) !important;
|
color: var(--bs-body-color) !important;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
// reference: https://codepen.io/alphardex/pen/dyPorwJ
|
|
||||||
|
|
||||||
@function random_range($min, $max) {
|
|
||||||
$rand: random();
|
|
||||||
$random_range: $min + floor($rand * (($max - $min) + 1));
|
|
||||||
@return $random_range;
|
|
||||||
}
|
|
||||||
|
|
||||||
.snow {
|
|
||||||
z-index: 999;
|
|
||||||
position: fixed;
|
|
||||||
|
|
||||||
// compile random styles for 1024 snowflakes
|
|
||||||
@for $i from 1 through 1024 {
|
|
||||||
$size: #{random_range(1, 10)}px;
|
|
||||||
// lower fall duration means faster fall speed
|
|
||||||
$fall-duration: random_range(5, 25) * 1s;
|
|
||||||
$fall-delay: random(10) * 1s;
|
|
||||||
$wind-max-swing: #{random_range(10, 50)}px;
|
|
||||||
// lower duration means faster swing
|
|
||||||
$wind-swing-duration: random_range(2.5, 4) * 1s;
|
|
||||||
$wind-delay: 0s;
|
|
||||||
|
|
||||||
&:nth-child(#{$i}) {
|
|
||||||
// +-50px to fix x-overflow if flake is blown out of right screen
|
|
||||||
left: clamp(0% + $wind-max-swing + $size + 50px, #{random(100) + "%"}, 100% - $size - $wind-max-swing - 50px);
|
|
||||||
animation: fall-#{$i} $fall-duration linear 0s 1;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:nth-child(#{$i})::after {
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
background: white;
|
|
||||||
filter: var(--theme-snowDropShadow);
|
|
||||||
border-radius: 50%;
|
|
||||||
width: $size;
|
|
||||||
height: $size;
|
|
||||||
animation: wind-#{$i} $wind-swing-duration ease-in-out $wind-delay infinite alternate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes wind-#{$i} {
|
|
||||||
0% {
|
|
||||||
transform: translateX($wind-max-swing);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: translateX(calc(-1 * $wind-max-swing));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fall-#{$i} {
|
|
||||||
0% {
|
|
||||||
opacity: inherit;
|
|
||||||
transform: translateY(-#{random_range(1, 10)}vh);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(100vh);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user