#developers

1 messages · Page 2 of 1

quick spear
frosty bronze
#

I'm getting a very different development experience from my WSL compared to mac. Does vite not support hot-reload on mac?

exotic sigil
#

Do you have to get somekind of auth token for font awesome to get the 7TV website to build?
Getting this:

PS G:\Projects-7TV\Website> make deps
yarn
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://npm.fontawesome.com/@fortawesome/fontawesome-common-types/-/6.2.1/fontawesome-common-types-6.2.1.tgz: Request failed \"401 Unauthorized\"".
solemn widget
#

yeah

#

the icons costs money

exotic sigil
#

Okay where do I get the token or can I work around it

solemn widget
#

i think you can? work around it, but i'm not personally sure how

exotic sigil
#

Sorry for the ping @hasty kernel, but how could I get the paid FA icon package without the token, so I can build the website?

paper token
#

exactly

#

common dexerto 0 IQ moment

#

😱 kick is SUBSIDIZING its competitor (twitch) by using AWS 😱 😱 😱 😱 😱

#

I wonder if you could build a streaming service that used YouTube to host the streams tf

#

just unlisted streams

#

with a different UI and chat system

solemn widget
#

it's TOS for sure

paper token
#

I mean, it's just embedding unlisted streams tf nothing illegal about that

exotic sigil
#

Is nobody else getting an automatically generated .yarn/cache directory when making deps in the Extension repo?

frosty bronze
#

which version of yarn are you using?

exotic sigil
#

3.5.0

#

and I dont know if we want that or not

frosty bronze
#

shruge I'm using 1.23, I imagine most people are still using version 1.X

exotic sigil
#

damn thats ancient

exotic sigil
split marsh
#

Does anyone know why the 7tv websocket keeps throwing 4012 reconnects?

wss://events.7tv.io/v3

Appears to do it on the 36th message each time

pseudo rivet
#

iirc its very different

#

v1 is almost a completely different package manager

#

you can probably tweak it to get it to run with new yarn, but make sure you dont push yarn.lock or anything

pseudo rivet
#

it will kill connections after a certain period of time, regardless of activity

#

just send a RESUME op after you reconnect

hasty kernel
#

it's been set pretty low in order to free space because we are at points reaching max capacity on the current infrastructure

#

(you may sometimes be rejected from connecting with a 503 "This server is full!" error, that is why)

split marsh
#

Okay thanks. So would the solution Melon gave help or would I just have to reconnect?

split marsh
hasty kernel
#

youll need to reconnect regardless

#

but implementing resume is good practice

#

it can replay missed events and restore your subscriptions+caches

split marsh
exotic sigil
#

Because ChatList doesn't seem to handle them

exotic sigil
#

To clarify a little bit, I'm implementing a blocked phrases feature and I need to skip rendering past/history messages

brisk quiver
exotic sigil
#

FeelsDankMan somehow missed that, tyvm

exotic sigil
#

is SevenTV.ActiveEmote timestamp when it was added to 7TV or the channel?

pseudo rivet
#

.data is the actual Emote

paper token
#

Petition to replace the BTTV logo with a forsenE, since forsen is the only one that still uses it.

split marsh
#

LOOOOL

muted hill
#

then you have aris who doesn't use anything at all LULE

paper token
misty olive
formal siren
#

Why 7tv doesn't use labels to sort issues on GitHub so people can easily filter?

patent wing
#

real question is why isnt this merged already

#

adds "bug" and "enhancement" labels without needing to manually

#

if a admin gave me permission to label issues it wouldn't be like that Madge

#

give triage role

paper plover
#

Triage Okayge

exotic sigil
#

I don't know if the topic of testing has come up before, but I think the extension is on a level of maturity and size that it should have tests, opinions?

paper token
#

Well it has the nightly version. Sorta.

brisk quiver
#

yeah but i think they meant code tests that run automatically and verify parts of 7tv but dunno what would you test in 7tv

exotic sigil
#

Yeah I meant code tests, like unit tests. There's alot to write tests for, render output, shared logic etc.

#

and writing tests will definitely lessen the amount of bugs in the future

patent wing
#

I mean if you got the time to write them go for it

patent wing
#

a better method for changelog entries is needed as every individual merge causes merge conflicts in every other pr

lethal horizon
#

when i try to build the extension and test it it cant find the manifest

#

it says its searching on :8080 and the server is hosting on 7444 but i changed the environment variable and it didnt help

#

says connection refused

#

and idk if it's a separate issue but when i try to test my fork the 7tv option just doesn't show up even though it's logging in the console

patent wing
#

i just use build:prod script and it works fine for me

lethal horizon
#

I'll try that

#

I'm not a vue developer normally I'm just implementing the issue about showing ffz and bttv modifiers

lethal horizon
#

icon still isnt showing in twitch for me

patent wing
#

i dont use the server Okay

#

i just build:prod when i finish my changes lol

#

wdym by icon

lethal horizon
#

like the 7tv icon in twitch for settings

#

it like requests to the server for the host manifest or smth

#

it i highly possible that this is a dumb question bc i am not an extension dev normally

patent wing
#

yeah idk about using the vite server specifically, i just use build:prod

#

should work perfectly

lethal horizon
#

hmm

#

yeah it seems to be working im just not seeing any visible changes on the site

#

its showing on the console but nothings changing

hasty kernel
#

@patent wing you don't use HMR? pajaDent

#

that's an insane time loss WAYTOODANK

#

@lethal horizon manifest doesn't matter, in dev env it will always fail unless you have an http server serving dist-hosted/

#

but vite should still work fine

lethal horizon
#

makes sense

patent wing
#

i think the first time i tried using it it wasnt working so ive just been using build:prod

hasty kernel
#

💀 bro wtf

lethal horizon
#

but for some reason the 7tv just like isnt showing do i need to build-hosted ro something

patent wing
#

not much of a time loss, just write code correctly once :)

hasty kernel
#

that's horrible, i put a lot of effort into building this huge developer experience improvement

lethal horizon
#

tried in both firefox and chrome

#

i changed like 2 lines of code so shouldnt be huge

hasty kernel
#

it won't work on firefox

#

because firefox is dumb

lethal horizon
#

yeah i realized that quickly

#

hence the chrome

hasty kernel
#

which is fine just use chrome

lethal horizon
#

but like now the extension is kinda working but again no settings icon and i cant use 7tv features

hasty kernel
#

show console

lethal horizon
#

i uhh dont have a screenshot service installed

#

using local mode

hasty kernel
#

print screen key

lethal horizon
#

linux

#

404 on the blob for worker data which i assume is just bc it doesnt exist yet

hasty kernel
#

cv+paste it then

lethal horizon
#
Download the Apollo DevTools for a better development experience: https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm
2amazon-ivs-wasmworker.min-f1942659be37261342a2.js:1 Amazon IVS Player SDK 1.18.0-twitch.1-rc.5
/greninja:1 Access to XMLHttpRequest at 'https://c.amazon-adsystem.com/cdn/prod/config?src=652&u=https%3A%2F%2Fwww.twitch.tv' from origin 'https://www.twitch.tv' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
c.amazon-adsystem.com/cdn/prod/config?src=652&u=https%3A%2F%2Fwww.twitch.tv:1          Failed to load resource: net::ERR_FAILED
seventv.useSettings.3.0.5.js:1 [7TV] [INFO] <Site> Using Local Mode, v3.0.5 (context unset)
seventv.useSettings.3.0.5.js:1 [7TV] [INFO] 7TV (inst: 1681695101358) is loading (context unset)
seventv.useSettings.3.0.5.js:1 [7TV] [INFO] IndexedDB ready (site/twitch.tv)
blob:https://www.twitch.tv/7b08ab84-03e3-49f6-917f-5945f218c618:1          Failed to load resource: net::ERR_FILE_NOT_FOUND
seventv.useSettings.3.0.5.js:1 [7TV] [INFO] Received worker data (133177 bytes) (site/twitch.tv)
seventv.useSettings.3.0.5.js:1 [7TV] [INFO] User Settings loaded (site/twitch.tv)
player-core-variant-a-0485440ae4e367059b8e.js:1 Moving to buffered region 0.083 0
i.play @ player-core-variant-a-0485440ae4e367059b8e.js:1
2amazon-ivs-wasmworker.min-f1942659be37261342a2.js:1 Amazon IVS Player SDK 1.18.0-twitch.1-rc.5
DevTools failed to load source map: Could not load content for https://c.amazon-adsystem.com/aax2/apstag.js.map: HTTP error: status code 403, net::ERR_HTTP_RESPONSE_CODE_FAILURE```
#

sorry

hasty kernel
#

anything after that

lethal horizon
#

nop

#

nothing 7tv after loading settings

#

i did add a setting so maybe my code just sucks but i wouldnt expect it to fail quietly

hasty kernel
#

enable verbose logging

lethal horizon
#

is that a build setting

hasty kernel
#

no top right web console

#

logging level

lethal horizon
#

oh wait this is also prod bc matin

hasty kernel
#

do BRANCH=nightly yarn start

#

that'll start it as a nightly

lethal horizon
#

aight 1 sec

hasty kernel
#

then reload the extension from the chrome extensions page

#

(important)

lethal horizon
#

yeah i know that bit

#

same stuff then some warnings about setTimeout handlers taking a while

#

and that comes from twitchcdn

hasty kernel
#

do u have verbose logging on

lethal horizon
#

yes

hasty kernel
#

show logs

#

also what kind of scuffed distro are you where print screen doesnt work

lethal horizon
#

nixos

#

wayland

patent wing
#

ah just used the vite server and it work FeelsDankMan

lethal horizon
patent wing
#

well thats good to know i guess

lethal horizon
#

also twitch fix your cors smh

hasty kernel
#

are you sure this is on @lethal horizon

lethal horizon
#

yes

#

looks like that except in light theme bc i installed chrome just for this

#

if i turn verbose off it doesnt show the forced reflows or the [vite] connected

hasty kernel
#

uhm

#

idk it should work unless your browser has some weird configuration

lethal horizon
#

fresh install

hasty kernel
#

did it ever work before

lethal horizon
#

nope

#

i only added this code in chatmodule where it was adding the other settings

#
    declareConfig("chat.hide_emote_modifiers", "TOGGLE", {
        path: ["Chat", "Style"],
        label: "Hide FFZ and BTTV Emote Modifiers",
        defaultValue: true,
    }),```
#

then added that in the tokenizer code where it hides modifiers

#
            } else if (hideModifiers.value && nextEmote && backwardModifierBlacklist.has(part)) {
                // this is a temporary measure to hide bttv emote modifiers
                tokens.push(toVoid(cursor, next - 1));
            } else if (hideModifiers.value && prevEmote && part.startsWith("ffz") && part.length > 3) {
                // this is a temporary measure to hide ffz emote modifiers
                tokens.push(toVoid(cursor, next - 1));
            } else if ((parsedUrl = this.isValidLink(part))) {```
#

so i think the code should be fine?

hasty kernel
#

is there anything in chrome://inspect/#workers

lethal horizon
#

uh uncaught window is not defined

#

nothing else

#

on the twitch worker blob from 7tv

#

may be an issue

hasty kernel
#

well theres your problem i guess

#

what version is your browser

lethal horizon
#

whatever nixos ships with

#

chrome is yelling at me to update though

hasty kernel
#

uh yeah go update

#

thats ur issue

lethal horizon
#

nixos kinda sucks at that

#

ill go install chrome canary or smth

hasty kernel
#

chrome://settings/help

heavy ridge
hasty kernel
#

what version does it show there

lethal horizon
#

Version 103.0.5060.53 (Official Build) (64-bit)

#

yeah thats a bit old

#

me when i dont update my repos in months

hasty kernel
#

hmm it should be enough normally.. though yeah that's a fair bit behind

#

in theory Chrome 97 is the minimum supported version

lethal horizon
#

weird

#

ill try to update anyway

hasty kernel
#

okay i gotta go good luck tho Okayge hmr is insane it's worth getting it to work for anyone who plans to work with the extension

lethal horizon
#

thanks

#

ill see if i can get it working

patent wing
lethal horizon
#

if not ill just start the pr and ask someone else to test for me

alpine echo
#

nixos titanuYikes

lethal horizon
#

it be like that

#

id switch but i have too many important files

alpine echo
#

~~just make a backup of /home/yourname (or whatever it is on nixos) trollface ~~

lethal horizon
#

i dont have anythign with nearly enough storage for that lmao

#

gonna get a new laptop soon though

#

probably get like void linux on it or something so i dont have to worry about all the purity stuff while staying kinda lightweight and cutting edge

#

and without using arch

alpine echo
lethal horizon
#

see i didnt even need to ask

misty olive
pseudo rivet
#

imagine not using arch

#

in 2023

lethal horizon
#

being a linux user is bad enough for my reputation

#

also systemd is bloat

pseudo rivet
#

cringe

#

if anything

#

thats - rep

#

now you've got - rep from linux users

#

AND normans

#

way to go

lethal horizon
#

im on a systemd system rn lmao

pseudo rivet
#

no its too late

#

also pacman >

lethal horizon
#

yeah aur is aweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeesome too

#

tf

#

system update finished mid type

#

i guess locked the e key down

lethal horizon
#

??? just rebuilt and it's working again

#

had to completely remove and reinstall aside from just hitting refresh

pseudo rivet
#

you probably had the dead worker still alive

lethal horizon
#

yeah i checked that

#

idk it works now so idc

pseudo rivet
#

you may have also not built the worker entry properly

#

sometimes you have to build a full build first

#

before running

lethal horizon
#

ok code works swag

#

time to push

#

dont have ffz premium so i just hope that works too

#

ok pr #526 is officially there

#

yall should really write a contributing.md or something with a style guide or like a template for issues/pull requests

#

so anyway what exactly are requirements for contributor badge

alpine echo
#

bottom message is first

lethal horizon
#

oh i see

#

makes sense

#

yeah i just added a switch in settings lmao thats not gonna count

alpine echo
#

basically either buncha small things or one big thing

lethal horizon
#

well i might hang around and fix some issues if i have time but i also have a bunch of schoolwork so we'll see

patent wing
lethal horizon
#

nice

#

doesnt really have a form for prs though

patent wing
#

yeh might look into doing that aswell

brisk quiver
#

@lethal horizon did you install chrome from the official google website with .deb package? if you install it through some app store it might install as snap/flatpak and cause issues

lethal horizon
#

need everything to be pure and functional

#

but it works now so its fine

brisk quiver
#

oh right, didnt see that you are using nixos

formal siren
brisk quiver
formal siren
#

fixed

frosty bronze
#

maybe its just me, but what is the proper way to prevent the plugin from loading in hosted mode?

#

from a dev perspective

#

I know the env variable points to localhost, but that seems to still try and load in hosted mode

pseudo rivet
frosty bronze
#

hmm I had to go to chrome://inspect/#workers and terminate the worker, that seems to have "fixed" my issue

pseudo rivet
#

then that was the issue

#

not the hosted mode

hasty kernel
#

if your page hangs (usually this happens when a module file is hotreloaded, it leads to hooks being recreated which instantly causes an infinite recursion) then you need to go kill the worker as well, since it'll also hang

#

need to add a few more files to full-reload list that reminds me

frosty bronze
#

yes, I've gotten the infinite recursion issue more than once, would be nice to be able to terminate/reload the worker when doing a page refresh as well

paper plover
#

@naive mesa about your twitchdatabase following api, is there a way i can query more than 100 channels, or how do get info other than the 100 channels displayed?

#

how should i change the cursor

paper plover
#

Apu oh wait that's the twitch api limitation

naive mesa
#

I would recommend just using Twitch's API tho

paper plover
#

isnt the cursor in your api's response the current page cursor
in twitch's it's the cursor for next page

frosty bronze
#

man finding which component renders the section of the DOM you're trying to patch is ridiculous

#

it's like different for each component

#

I mean I've been making good progress, it's just slow

exotic sigil
#

haven't tried vue devtools yet, but I'd imagine it could help?

frosty bronze
#

its not vue tho, its vue hooking into react LULE

#

two different frameworks with different philosophies (albeit similar in the end)

exotic sigil
#

ah you meant like that

solemn widget
#

no thanks

azure cape
solemn widget
#

awh hell naw

#

now people won't know what i said no thanks to

frosty bronze
frosty bronze
#

When “mutating the returned node” do you mean the “return” of the _reactInternalFiber property of a hooked component?

pseudo rivet
#

huh?

cursive saffron
heavy ridge
frosty bronze
pseudo rivet
#

you don't ever touch and should never touch the fibers themselves

#

let the hook tools do that for you

#

the hook tools will efficiantly scan neccissary dom and fiber trees to find components matching your criteria

#

it will then patch those components directly

#

giving you control over their lifecycle

#

from then its as if you had direct access to the components lifecycle functions, and just a small bit of its data

#

the hook tools also provide an easy way to track out react nodes as they pass through fiber and the other parts of the life cycle

#

for use in Teleport

#

this is what the trackRoot and domNodes fields are representing

#

if you mean to mutate things as the component renders them

#

then you can add a render function in the hook props

#

which will execute after the component has been turned into a new vdom tree

#

allowing you to change what gets rendered before it hits fiber and gets diffed

#

if you mean to just insert vue elements in place or inside of react components you can use trackRoot and do a teleport to each instances domNodes.root

#

if you mean to just insert vue elements into a specific part of a component

#

you can combine the two

#

if you find a specific part of a rendered output in the render hook, you can call ReactHooks.getTrackedNode(name, rElement)

#

when the vnode tree passes through fiber and eventually onto the dom

#

instance.domNodes[name] will be populated with the actual dom element

#

best associated with the vnode you tracked

#

which you can then teleport into, like above

#

if you mean to hook more internal parts of a component, your options are limited, if the component or its class prototype exposes the things you desire to modify

#

you can use the ReflectionHelper.defineFunctionHook() method

#

which will automatically hook and allow you to intercept method calls

#

even if other extensions hook the same functions, or if the functions are ephemeral

#

as long as they belong to an object

#

this is why functional components are impossible to hook, without situational hacks, like you saw in the animated avatars implementation

#

regardless I beleive you have a misunderstanding of what fibers are

#

or how react's internals operate, modifying fibers wont do anything, they are not real representations of the things you want to change

#

there are multiple extremely similar types in react internally

#

Components, Elements (x2), VNodes, Fibers, DOM Elements

#

the hooks are adapted such that they look for stateNode matches to your selector

#

dom nodes hold references to their vdom fibers

#

fibers hold references (ocassionaly, depending on hierarchy and component type) to their owner component instances

#

there are also multiple representations of component instances, of which we do not have access to all of

#

its all very situational what is accessable and what is not

#

the hook tooling attempts to generalize this out as best as is possible

#

to work in the most possible amounts of situations

#

you should not be touching any internals directly

manic torrent
exotic sigil
#

Should the config keys be variables in a dictionary or smth

sturdy nebula
#

hey, is there some getting started for the api docs?

i only know of https://7tv.io/ but i dont know how i interact with it at all

paper plover
sturdy nebula
paper plover
#

yeah
in that case do a get request for https://7tv.io/v3/emote-sets/<emote-set-id>

sturdy nebula
#

oh nice, thank you!

patent wing
#

i noticed that the chrome web store extension hasnt been updated, causing a new update on install. this seems counterintuitive

rotund pivot
#

one is running on hosted mode tho

patent wing
#

ye?

#

shoudlnt matter? should it?

lethal jackal
#

hey guys, just wanted to let you know you're doing a great job thank you

#

surely one day i'll start earning cash online so i can start subbing COPIUM

frosty bronze
patent wing
patent wing
lethal jackal
#

(not using any dev/experimental stuff)

frosty bronze
#

it's a CORS issue

civic bay
#

Hey i wanted to ask if "make deps" is an actual command, which i don't know of, because i would love to contribute and make it easier for new developers to get in to developing

exotic sigil
#

yes it is, you need to install GNU Make

#

it will run the deps section in the Makefile

hasty kernel
#

alternatively you could just run yarn which does the same thing. it's just standardized into a Makefile so that we can make sure theres a consistent dependency structure in case more than just JS dependencies are needed

civic bay
#

yea i saw that as well in the makefile, also do you need to install Node-Env in Linux or is this another Windows exclusive thing?

hasty kernel
#

You might want to get WSL if you're on windows

#

Environment is untested on windows shells

#

Cmd/PowerShell, not tested

civic bay
#

works pretty well so far, just needed to install some standard stuff

#

i would like to make the readme easier to understand, but i don't know how dumbed down you'd want it to be

civic bay
#

is there a function or event, when the chat finished loading? I implemented the hiding of the gifted subs leaderboard, but it seems stupid to change the css everytime a message loads LULE

solemn widget
#

worked fine enough

#

i just had to get rid of the NODE_ENV=production stuff

civic bay
solemn widget
#

that's good then

frosty bronze
#

I wonder how much the performance would improve using the windows vs wsl

lethal jackal
#

that would be really really awesome since it's way more lightweight on pc compared to standard website

frosty bronze
#

you probably want to ask the dev of that website to add support

lethal jackal
#

is there a similar thing that supports 7tv? like any script that uses embed+chat instead of full scale twitch

paper plover
# lethal jackal is there a similar thing that supports 7tv? like any script that uses embed+chat...
GitHub

Chat client for https://twitch.tv. Contribute to SevenTV/chatterino7 development by creating an account on GitHub.

lethal jackal
#

wow this is amazing, nice

#

a lot of the github software i like uses Chocolatey, I guess it's time to try it

lethal jackal
#

if you have any other software suggestions I'm all ears (if it's too off-topic you can DM me)

paper plover
solemn widget
#

what the fuck WutFace

#

what's that bone structure looking thing at the bottom

pseudo rivet
#

Something Anson would look at

paper plover
#

it pleases my autism

#

trying to see if i can get it works on twitch

frosty bronze
#

should I attempt to rebase my PR or will one of the maintainers do that?

paper token
#

but yes it's a spectrogram and I look at them frequently

#

they're a useful tool for audio work

solemn widget
#

of course you also work with audio

#

mf's spectogram looking like the iron lung camera

paper token
#

lol

lethal jackal
#

oh it's a waterfall

#

looks useful for making gachi remixes LULE

paper plover
#

HappE 8-bit music waterfalls

paper token
#

Who calls spectrograms waterfalls? Please stick to the terms for these things that we're used to.
( Pepepains sorry)

frosty bronze
#

it probably shows it over time, hence the "waterfall"
(top is current, then falls down; a video would probably be better)

paper token
#

I know what they are and how they work, but they're just called spectrograms

#

Since the direction it "falls" doesn't have to be down

#

They're often scrolling right to left

frosty bronze
#

tru

#

sometimes I miss engineering, but software is where the money is at Okayge

paper token
#

Yeah

frosty bronze
#

also random question does twitch show that you can ban/timeout other mods now?

paper token
#

Tomfoolery that would be useful

azure cape
#

I always thought it was a 3rd party feature

pseudo rivet
#

and more like a design choice

#

so the message lengths dont fuck up

frosty bronze
#

Ye I checked both with/without extension it’s the same

lethal jackal
#

idk what they call them in college but it's used in the industry

lethal jackal
#

i heard great things about vue

hasty kernel
#

Vue is just a JavaScript frontend framework not a language

#

that's the one we primarily use at 7tv tho

exotic sigil
#

depends on what you wanna do

#

JS is easy for beginners and can do both front and backend

lethal jackal
#

yeah I just want something easy and fun to learn so I can have some income in my spare time

#

i tried learning c# and game dev stuff but it just takes too much time and had irl stuff came up had to quit, left a bad taste

lethal jackal
#

it's like a must at this point i didn't even need to ask it hahah

paper plover
#

are you like starting from 0 with JS?

lethal jackal
#

unfortunately yeah 😅 i studied linguistics in the uni long ago and they never really touched any programming or anything

#

ended up being neet home security

#

also probably answered on google but, does github usernames really matter? do companies look for real names or just using a nickname is alright (even though theyre all taken Sadeg )

#

sorry if it's going off-topic i'll stop after this pepeSit

paper plover
#

You can change github name later
And quick google search tells me HR dont really care about github names (as long as it is not around BRUH territory)

#

And if you are starting from 0, then look for some yt tutorial you can follow along, there are plenty of those

#

Also maybe try to not use chatgpt to help you with stuffs

lethal jackal
#

changing your github e-mail is dangerous for your commit history though huh?

#

oops nvm enough offtopic LULE

frosty bronze
#

twitch making design changes be like

#

that just stays on screen now with the extension

#

previous style for reference

#

it doesn't happen all the time (the purple box staying up)

paper token
#

I'd instantly be like

paper plover
civic bay
exotic sigil
#

why is it so hard to flip a boolean onclick in vue

#

nvm

pseudo rivet
#

FeelsDankMan it's not

formal siren
#

isn't it just v-on:click="method_name" (?

exotic sigil
#

it wasn't an issue with the onclick. Had an issue with onClickOutside, but fixed it by passing the element ref to the ignored refs options

pseudo rivet
#

that works

#

you could have also done @click.stop=

#

instead of @click

exotic sigil
#

that didnt work

pseudo rivet
#

or depending on heirarchy @click.capture.stop

rotund pivot
#

instead of the white icon

arctic torrent
#

nice

rotund pivot
#

i mean its a mockup ayyybuLULE looking for someone to implement this

arctic torrent
#

oh xd

#

@rotund pivot do you prefer people that want to contribute fix bugs or add features? there's prob a lot less that want to fix bugs huh

rotund pivot
#

anything helps kek

arctic torrent
#

refuses to elaborate

sharp topaz
#

i dont know

exotic sigil
#

in my book fixing an annoying bug weighs heavier than adding a new feature, that's my 2 cents

rotund pivot
#

@exotic sigil PagStick your pr actually made the emoji menu usable

exotic sigil
#

thats nice to hear :)

rotund pivot
#

everything is so nicely sorted

#

compared to the default alphabetical sorting

hasty kernel
#

sorry for lack of reviews on PRs im dealing with a lot of other stuff

civic bay
#

@rotund pivot does something like this look alright?

#

i just took the first emoji in each category and displayed it

rotund pivot
#

looks like its the standard

civic bay
#

Hmm is this set anywhere or is it just a coincidence

rotund pivot
civic bay
#

ye as far as i see it's just coincidence, but i'll see what i can do without ruining the code too much LULE

rotund pivot
#

the emoji menu is already a mess ayyybuLULE

civic bay
#

looks like this now, is this any better?

rotund pivot
#

much better

#

the hand for "people and body" can stay

#

idk why we have it split into 2 categories anyway

#

everything else uses "smileys & people"

civic bay
#

yea pretty sure it's grouped by the symbols itself

pseudo rivet
#

anything that uses anything else is wrong

#

these are defined groups

#

the icons are defined as well I beleive

civic bay
#

do i need a issue or something to make a PR?

pseudo rivet
#

you should be using the emoji components atleast

#

these are just regular text glyphs

#

which will be displaying using the systems style

#

not our svgs

civic bay
#

ah so i have to make the svg's first/find svg's right? I think I'm outa my field there, but will try to look for something

#

can i ask why the text glyphs are not allowed? Is the system style that bad?

pseudo rivet
#

the svgs are all already included

#

they're being used for the actual display of the emojis

civic bay
#

ah i see, Surely this will be easy for me to implement Clueless

pseudo rivet
#

just use the SingleEmoji component

#

all emojis are compiled into a couple of parallel svg atlases

#

and imported into actual page locations using the <use> tag

#

all you have to do is specify the size and glyph id

civic bay
#

thank you ❤️

#

quite new to this open source stuff and i'm pretty lost

#

looks like this now

rotund pivot
#

i think the icons are a bit too big tho

#

i kinda liked the previous size

civic bay
#

ok will make them smaller

#

first i need to delete my other pull request, because i committed on the main branch LULE

rotund pivot
#

or maybe submit your pr first

#

i wanna see it in action

#

and then we can decide how big they should be

civic bay
#

yea will do in a sex 🙂

rotund pivot
civic bay
#

sec*

civic bay
rotund pivot
#

yeah you dont have to change the size

#

its fine as it is now

#

good job Okay

civic bay
#

tried my best FeelsDankMan

civic bay
#

do i have to request a review after every change in my PR or do admins in my PR get a notification if i made a commit/comment?

sharp topaz
#

they see it

azure cape
#

@quick ibex Okayeg you think it would be possible with the mod slider to stop chat whenever you click on the mod slider button?

#

Apu would make it better imo, unless im stupid and its already an option

pseudo rivet
#

thats possible but i don't think excellify would do it

#

you can make a github issue for it

#

it might be taken up some time, doesn't seem that difficult to do, just a few structural tweaks

frosty bronze
#

an aside, looks like there's already code to support mouseover/altkey chat pausing, but I don't see options/settings to enable it

frosty bronze
#

Oh the native settings ok

arctic torrent
#

so how do you know that someone else isn't already working on an issue?

frosty bronze
#

you don't 4HEad

#

but I imagine you can open a draft PR if you want to work on something

civic bay
#

you could also probably ask here

arctic torrent
exotic sigil
#

i guess you could just comment on it that you're looking into it, if you decide to not pursue it anymore you ninja delete your comment 4HEad

arctic torrent
#

lol

exotic sigil
#

i mean these smaller kinds of open source projects i guess it's not so strict

arctic torrent
#

It's fine if a PR randomly pops up that fixes it and I've already been working on it it's not a big deal

exotic sigil
#

well that wouldn't be very nice

arctic torrent
#

it's fine

arctic torrent
#

god damn I'm trying to understand how the extension "hooks" into twitch and it's making my head spin

civic bay
#

i would love to help, but i have no clue as well

paper plover
#

FDM is it possible to have embedded chat to use 3rd party emotes

delicate roost
hasty kernel
#

working on new user card ppBounce

solemn widget
civic bay
#

PagMan looks clean

hasty kernel
#

CSS Grid GIGACHAD

solemn widget
#

and you were doubting it when i was trying to use it for the emote cards

#

haHAA

hasty kernel
#

FeelsDankMan ?

solemn widget
#

tooltips

hasty kernel
#

ive been using grid since i started the extension wdym

solemn widget
#

nvm that was probably melon then

hasty kernel
#

grid > flex

solemn widget
#

its less of a pain in the ass for sure

arctic torrent
#

So strange, I was running extension locally just fine for a few days, but all of a sudden it doesn't seem to work at all. It generates a dist folder, and there's no vite errors. The index.html it generates is blank though, and the extension doesn't do anything.

hasty kernel
#

try killing the worker

#

chrome://inspect/#workers

solemn widget
arctic torrent
#

Killed worker and restarted chrome, same thing. This error seems related

#

even tho running no errors

lyric violet
rotund pivot
frosty bronze
#

I had the same issue with brave browser

hasty kernel
arctic torrent
# frosty bronze you have an aggressive content blocker

I haven't changed any extensions since it stopped working though. I already tried disabling ublock too. I think it might be a problem with it building. Surely there's supposed to be more in dist/index.html than this right? That's the first page it opens when you install right? ```<!DOCTYPE html>
<html lang="en" data-seventv-app>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,400&display=swap"
rel="stylesheet"
/>
<link href="https://fonts.googleapis.com/css2?family=Work+Sans:wght@700&display=swap" rel="stylesheet" />
<link
href="https://fonts.googleapis.com/css2?family=Work+Sans:wght@100;600;900&amp;display=swap"
rel="stylesheet"
/>
<script type="module" crossorigin src="http://localhost:4777/src/options/options"></script>
<link rel="modulepreload" crossorigin href="http://localhost:4777/assets/seventv.useUserAgent.3.0.6.js">
<link rel="modulepreload" crossorigin href="http://localhost:4777/assets/seventv.useSettings.3.0.6.js">
<link rel="modulepreload" crossorigin href="http://localhost:4777/assets/seventv.StarIcon.3.0.6.js">
<link rel="stylesheet" href="http://localhost:4777/assets/seventv.style.3.0.6.css">
</head>
<body data-seventv-app>
<noscript>
<strong
>We're sorry but 7TV doesn't work properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript>
<div id="app"></div>

</body>

</html>```

frosty bronze
#

extensions work a bit differently then "websites"

hasty kernel
#

index.html doesnt do anything in regards to twitch

frosty bronze
#

^^

hasty kernel
#

it's only used for the options page

arctic torrent
#

oh aight so it's normal to just have <div id="app"></div>

hasty kernel
#

ye it's just a template, vue replaces this element at runtime

arctic torrent
#

If I click on extension it shows blank square

hasty kernel
#

something is wrong with your vite , try removing dist/, rebuilding and reloading the extension fully

frosty bronze
#

what does your .env.dev look like?

rotund pivot
hasty kernel
#

thats poggers

arctic torrent
hasty kernel
#

i found out you can actually query your own message history in any channel

#

even as a non mod

hasty kernel
hasty kernel
frosty bronze
# arctic torrent

yeah unless you have the APIs hosted locally, you might want to use the production urls

#

except for VITE_APP_HOST

civic bay
hasty kernel
#

yeah i m adding that on the new user card

#

if you click on yourself you'll see your own message history

#

doesnt work for anyone but yourself if youre not a mod though

frosty bronze
#

monkaLaugh looks up how to erase own messages

hasty kernel
#

now you can cringe everytime you click your name

#

seeing your own shit spam

heavy ridge
rotund pivot
#

cant you just use randers chat history by default so it works on all users

hasty kernel
#

well, it's tos

rotund pivot
hasty kernel
#

third parties cant store messages beyond 24h

rotund pivot
#

just pull the last 24h then 4HEad

hasty kernel
#

FDM i mean sure we could do that i gues

#

im just querying twitch directly here

sage barn
#

YEP ligma

rotund pivot
#

i mean it could even just show you the messages from your session

hasty kernel
hasty kernel
#

it'll pull the live messages

arctic torrent
frosty bronze
#
NODE_ENV=development
VITE_APP_API="https://7tv.io/v3"
VITE_APP_API_GQL="https://7tv.io/v3/gql"
VITE_APP_API_REST_OLD="https://7tv.io/v2"
VITE_APP_API_EVENTS="wss://events.7tv.io/v3"
# VITE_APP_HOST="https://extension.7tv.gg"

FeelsDankMan

#

just don't commit it into git

arctic torrent
# sage barn make deps?

yea my dockerfile runs that CMD ["sh","-c", "make deps && yarn start"] it has a couple warnings while running make deps but I don't think they matter

arctic torrent
arctic torrent
#

I tried using wsl instead of docker and now it says it's generating dist but never does

hasty kernel
#

if youre using wsl you need to use the linux file system

#

you cant write to windows

#

(or, technically you can, but it'll be super slow and unreliable, since it'll run through a different protocol)

arctic torrent
#

hmmm never used wsl before, shouldn't it show up here? or am I just listing windows directories again

pseudo rivet
#

way to get the only living log tool taken down

arctic torrent
#

and need to google how to use the linux file system

pseudo rivet
#

because the most popular extension

#

lets anyone use it

#

the same extension

#

that some staff already hold a grudge towards

#

and surely wouldnt take any chance to shut a feature down from

frosty bronze
#

that is mounted on the linux system

arctic torrent
#

ok so I think I get it, I need to do everything in wsl, including clone the repo to there instead of windows right?

frosty bronze
#

YEP that's what worked for me

hasty kernel
#

if we added the logs api twitch will dmca it

#

since it's already against TOS and only alive because twitch hasnt given enough of a fuck to take it down so far

pseudo rivet
#

yeah

#

recent-messages

#

but useless

#

for us

#

since we already have history

#

and its not indexed by user

#

its only the past 800 messages

#

it should probably just be

#

like chatterino

#

just a reorganization of messages that are already loaded

#

and at the top

#

a little header

#
  • end of current session -
#

or something

#

thats what i mean

#

thats what chatterino does

#

as soon as a message goes out of the scroll buffer

#

its gone from the user box

#

except I think we can just unify it

#

so if we can fetch it, we fetch it

#

and if we cant then its only live

#

with a little info message that informs you why there are no messages above

#

and its not that the user hasnt said anything else before

sage barn
#

@hasty kernel so for the video player stuff I was working on to pause the video on click, I should be added a VideoPlayerComponent to the twitch.d.ts file using the react tree?

#

Ok thanks, that's what I was looking at last night and the mediaPlayerContext you mentioned helped

arctic torrent
#

Yep it works now after switching to WSL. Must have been some weird shit with docker. I didn't change my docker setup at all tho from the time it was working to when it wasn't tho ¯_(ツ)_/¯

#

thanks for help everyone

rotund pivot
hasty kernel
dreamy geyser
#

🥺 please keep the yoda stare forever

#

@hasty kernel can i get contributors role ? peeposhy

paper plover
#

contribute to the development of the 7tv project

muted hill
#

significantly contribute*

frosty bronze
civic bay
#

PagMan free 50 bucks

rotund pivot
#

@hasty kernel it can look like this instead

#

its the same shit as

#

= avatar outline with channel accent color + red live bar

#

i dont really see the point anyway ayyybuLULE how often do you see streamers chatting when theyre live

#

instead of "live" you can just put a number there instead

#

rounded up if its too long

paper token
sage barn
#

what's the best way for me to see elements that don't commonly show up on a page? such as hype train elements? I'm just going to click random high viewer streams until I find one I guess, but I'm not even sure how many different community highlights exist

#

i forgot twitch literally added a section on the home page for streams with a current hype train

rotund pivot
#

anyone wanna work on "reset to default" feature? nymnOkey

exotic sigil
#

@hasty kernel could you spare some time to look at PRs?

ashen smelt
#

When I run yarn start and try loading the extension into chrome, I get the setup screen but the extension wont actually load on twitch and I have several errors in the extensions page. It says they're just warnings but it's not loading so peepoShrug
Not sure how to proceed.

#
  • Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.
  • 'scripting' requires manifest version of at least 3.
  • 'content_security_policy': CSP directive 'script-src' must be specified (either explicitly, or implicitly via 'default-src') and must allowlist only secure resources.
sharp topaz
#

someone should give @exotic sigil permissions to manage prs

#

or someone else

frosty bronze
#

those "errors" are normal

#

you should read the console logs when you are on twitch

#

also see above convo from a week or so back

ashen smelt
#

Ah, saw you mention aggressive content blocker. ublock origin was stopping it

#

Hm, still only seems to be half-working though. Have a whole bunch of console errors

#

One of them is a connection refused to localhost:3000. i know on mac there's usually a popup saying to allow connections when you bind locally, but i'm not getting that when running yarn start

sharp topaz
#

you can just ignore them

#

and ublock origin shouldnt be a problem

#

unless you have some special filters

ashen smelt
#

i just have all of the built in filter lists

paper token
#

I've never enabled all of them

#

that seems a bit excessive

ashen smelt
#

Not the region ones but all the ones above it yeah

paper token
#

well that's not too bad

#

maybe try with just the default lists

#

if that works, then enable each one and test to see which one is the culprit

ashen smelt
#

I totally disabled ublock original though and parts of the extension still dont work for me though. BTTV/FFZ emotes are loading but none of the 7TV emotes show. Is that expected since it's looking at a local server?

sharp topaz
#

no

#

did you modify some code

paper token
#

times of particularly high demand can make loading emotes from the 7tv servers fail, or take a long time

frosty bronze
#

make sure your .env.dev is updated

ashen smelt
#

Didn't modify anything. For some reason it mostly started working now after rerunning yarn start again. 7TV emotes still arent loading but everything else in the extension works so far

frosty bronze
#

well I mean the env variables point to the 7tv apis, so if you don't have them running on localhost, then it's not going to work FeelsDankMan

frosty bronze
#

what's the difference between a property hook and property proxy? why would one be used over the other?

#

I guess to me it sounds if you want to define your own handler instead of the default set, get, value hooks

hasty kernel
#

definePropertyProxy() just returns a raw proxy which you'd need to implement yourself

#

definePropertyHook() returns something you can use in practice

#

you shouldn't need to use the former in most cases

#

also in 90% of cases you only need to care about value()

frosty bronze
#

I figured, it was more of a curiosity

sharp topaz
#

i wonder what this means

#

i just used a single regex

#

and it's working

exotic sigil
#

yeah thats what I suggested as well

hasty kernel
#

feel free to open another PR if you have a proper fix since the one by batyodie was not correct

exotic sigil
#

or they could update the PR with the suggested fixes

hasty kernel
#

yeah not sure if theyre on discord

#

so you should make a suggestion on the PR

exotic sigil
#

Not sure if I should leave a single comment or start a review? I pressed start review and it's pending FeelsDankMan

hasty kernel
#

you need to complete the review

#

top right

exotic sigil
#

ah yeah

pseudo rivet
#

property hook is the base of all hooks

#

it takes a field on an object and hooks it, as the name implies

#

propertyproxy takes that field and binds a proxy into it

#

when its read

#

if the child is an object

#

given the object {cum: {forsen: true}}, if you made a proxy on .cum when someone reads object.cum they get a Proxy({forsen: true}) instead of the real backing value

#

property hooks are what provide the backing value in the first place

#

there are inherant flaws with using proxies though ( identity doesnt match, readers of old values are "corrupted" and can still hold your proxy after you unhook )

#

its not something thats recommended

#

if you need nested hooks just actually nest hooks with the value helper

#

hook gives you access to the property itself

#

proxy makes a hook that gives readers of the property a proxy of it ( if its an object value )

frosty bronze
#

WAYTOODANK

definePropertyHook(mediaPlayerComponent.instances[0]?.component, "props", {
    value: (v) => {
        definePropertyHook(v, "mediaPlayerInstance", {
            value: (v) => {
                definePropertyHook(v, "core", {
                    value: (v) => {
                        if (typeof v == "object") {
                            coreState.value = v;
                        }
                    }
                });
            }
        });
    }
});
#

but it doesn't work FeelsDankMan

pseudo rivet
#

what are you even trying to do

#

that looks like not smart code

#

are you running that immediately after setting the hook?

#

instances[0] wont exist at that time

#

and therefor the define will fail

#

also

#

are you actually expecting those values to change?

#

you probably dont need the hook on anything but the props

#

then just set out mediaplayerinstance to a ref

#

and watch it

#

unless you expect .core to change

#

when .mediaplayerinstance does not

#

also

#

i recommend

#

using a v-for

frosty bronze
#

I mean this is a whole new twitch type that could add a lot of extensibility so I'm trying to format things in a way that makes sense

pseudo rivet
#

to instance a new vue component

#

for every instance of a hooked react component

#

instead of directly hooking .instances[0]

frosty bronze
#

even if there is only 1 instance?

pseudo rivet
#

just instantiate a new one

#

why would you expect

#

that there could only be one?

#

what about the mini player

#

or what about on the start page

#

either way it will make your code smaller

#

and easier to work with

#

because you can set out local variables

#

and state

#

self confined

#

expecially because

#

you'll have to watch instances

#

regardless

#

and figure out which ones havent been hooked

#

etc

#

i imagine twitch doesnt keep the same component instance

#

across page changes

#

from a non video page to a video page

#

and watching arrays in vue is not very fun

#

its alot easier if you use v-for

#

which will do reconsiliation for you

#

then you can also have simple cleanup

#

with just onUnmounted

#

to unhook or destroy existing state

frosty bronze
#

yes I started to architect my code like that

<template>
    <template v-for="inst in mediaPlayerComponent.instances">
        <!-- <VideoStats v-if="shouldShowVideoStats" :instance="inst" /> -->
        <!-- <PauseOnClick v-if="shouldPauseOnClick" :instance="inst" /> -->
    </template>
</template>
frosty bronze
#

if you pass the same instance to multiple child components like above, are the property hooks unique to each child component? my thinking was no

hasty kernel
#

javascript objects are pointers, if you pass the same object to two different places it is still the same object

frosty bronze
#

ok cool

#

somehow I thought a "simple" addition would be easy, but the rabbit hole is deeper than I anticipated

#

don't get me wrong, I'm learning a lot

#

(and thank you for putting up with my bs/confusing questions)

pseudo rivet
#

the first one will be destroyed

#

this is by design

hasty kernel
#

@rotund pivot yo u herer

rotund pivot
#

Wot

#

@hasty kernel ayyybuHUHH

hasty kernel
rotund pivot
hasty kernel
#

@rotund pivot nyow

rotund pivot
#

it disappears when the message gets flushed out

#

also text for ants ayyybuLULE

#

timeouting someone does this

#

the buttons just disappear

#
  • add an outline to the whole card
#

the same one emote menu uses

#
  • make the twitch icon the same size as x icon
#

idk why you left the top corners not rounded

#

pretty good so far anyway

quick spear
#

Also when you open an emote card from the user card it opens it behind the user card

rotund pivot
#

text clipping

hasty kernel
#

aaahh wire

arctic torrent
#

it doesn't update with new messages sent

cursive saffron
#

Is there any way to apply for my bot to have a higher Rate-Limit? ApuScience

sharp topaz
#

i think i got the tokenizer ~50% faster

#

not sure if it makes any sense though

exotic sigil
#

wow thats pretty cool

#

how big changes were they

sharp topaz
#

well not that big like ~60 lines changed

exotic sigil
#

what the diff between like 2 links

sharp topaz
#

?

exotic sigil
#

if you have a message that includes 2 links, what's the diff time between tokenization1 and tokenization2

sharp topaz
civic bay
#

my PR got merged PagMan

hasty kernel
#

github actions moment LULE

civic bay
#

Classic LULE

sharp topaz
#

monkaX backdoored

hasty kernel
#

yea gh actions seem broken yet again PagStick fix your shit beel gates microsoft whoever tf

gleaming lance
#

Hello fellow nerds

#

am i not supposed to use this or does it not work right now?

paper plover
hasty kernel
#

daily github down PagStick

sharp topaz
hasty kernel
# sharp topaz

5Head if the requests to the frontend respond with a 200 then it's all just fine

sharp topaz
#

yeah something is broken

frosty bronze
#

why would twitch prevent calling setMuted function unless user has unmuted? monkaHmm

pseudo rivet
#

browsers don't let you play audio (sometimes video) until the audio has been played from an event with user interaction

#

its probably a hardcoded check to initialize the state of the player correctly

#

because if it tries to play unmuted

#

when the user has not interacted

#

the video will fail outright

#

you dont get a failure event

#

it will just not play

#

forever

frosty bronze
#

makes sense then

pseudo rivet
#

you can workaround though by making sure its muted

#

and then playing

#

and it wont count as "autoplaying"

#

so the browser wont stop it

frosty bronze
#

no its a twitch check

#
n.setMuted = function(e, t) {
                    var i = n.props
                      , r = i.videoAd
                      , a = i.isAdShowing
                      , o = i.mediaPlayerInstance
                      , s = i.audioBlocked
                      , l = i.updateContext
                      , d = i.updateAdMuted
                      , u = i.disableUserPreferencePersistence
                      , m = i.playerType
                      , p = i.userEverUnmuted
                      , f = t && t.persist
                      , g = t && t.userTriggered;
                    (!g || e || p || l({
                        userEverUnmuted: !0
                    }),
                    g || !s) && (r && (r.setMuted(e),
                    d(e, !!g)),
                    r && !(r && !a) || null == o || o.setMuted(e),
                    f && !u && c.p.set("video-muted", m, e),
                    s && l({
                        audioBlocked: !1
                    }))
                }
pseudo rivet
#

exactly what i just said

frosty bronze
#

userEverUnmuted

pseudo rivet
#

read above

#

if they did not do this

#

it would cause the video to error

#

if autoplay was blocked

#

by the browser

#

its a safety check

frosty bronze
#

I mean, I don't necessarily want to workaround around it, but it might be confusing if I add it as an option

pseudo rivet
#

you should beable to pass { userTriggered: true } as the second argument

#

its probably some event type though

#

and that should be ok

#

because its on click

#

which is a user triggered context

#

as long as you run the code in the same event loop cycle

#

as the click happens

frosty bronze
#

ok, passing that seems to work

#

functionality is working with the hooked component

#

now to tackle the difficult problem of eliminating DOM operations Despairge

#

just to clarify if a property hook returns a HTML element is it ok to call queryselector on that element?

#

but we shouldn't be querying the entire html document, right

pseudo rivet
#

what hook is returning an element?

#

probably not

frosty bronze
#

that is the video container of the mediaplayer

#

or I guess I can just navigate the tree myself

pseudo rivet
#

yeah that is preferable

#

hook render -> walk tree to the react side of the element you want to change

#

add a tracked node, replace the child

#

with a wrapper

#

watch domNodes -> teleport with vue, or patch with a component

#

if you're trying to set an event

#

which I assume you are

#

you can use the helper in Reflection.ts

#

they take a namespace for events

#

so you can set them declaritively

#

and remove them on unmount by name

#

any more complex changes should probably be done on the react side

hasty kernel
#

aaaah i finally got stylelint to work in vscode

#

LULE

#

its so cancer

pseudo rivet
pseudo rivet
hasty kernel
#

yes

#

i actually have it working now

#

like working working

pseudo rivet
hasty kernel
#

even autofixing

pseudo rivet
#

does it work with volar?

hasty kernel
#

ye kinda

#

it doesnt directly integrate with volar

#

but i have it working with SFCs

pseudo rivet
#

Pag

hasty kernel
pseudo rivet
#

"modern" color-function notation

#

crumpPuke who would ever not want to put the commas

hasty kernel
#

yeah im probably disabling that one

hasty kernel
#

me when i farm lines

#

@pseudo rivet can u test

#

#575

#

LULE fuck it removed the vendor prefix for background-clip

pseudo rivet
#

classic chrome not supporting web standards

solemn widget
#

demiboy flag pagman

#

nvm

#

fdm

pseudo rivet
#

Clueless why implement the standard thing

#

when we have our own non standard vendored version

#

that does the same thing

hasty kernel
#

try to check if there are any other suck quirks

#

across our UIs

#

on firefox as well

pseudo rivet
#

it probably also removed the vendored text color

#

that we use to change the color to transparent

#

without corrupting currentColor

hasty kernel
#

seems like it didnt

#

probably bc that one is non standard

#

yeah seems like it doesnt remove the vendor prefix if the rule is itself nonstandard

#

but background-clip is standard just not supported on chrome

#

feelsdank man

#

also this is gonna royally fuck up a lot of PRs i apologize in advance

pseudo rivet
#

@hasty kernel wrong rule package version for this version of stylelint

hasty kernel
#

hmm

pseudo rivet
#

that version of style-lint-config wants a different stylelint version

hasty kernel
#

oh stylelint-config-recommended-vue is unused

#

try now?

pseudo rivet
#

its still unhappy

#

i think the packages all are requesting different versions of stylelint

#

its not an error its just a warning

#

it doesn't prevent completion

#

its just suboptimal

#

because it cant fully satisfy all of their dependencies

hasty kernel
#

ic

#

yeah some of these are outdated so i guess

#

shouldnt be an issue though

pseudo rivet
#

yeah just potential for issue

#

but not a problem

#

unless there is one

#

the postcss error should be fixable though

hasty kernel
#

might just grab the actual rules they define and manually define them in our config

pseudo rivet
#

also

#

mostly fine

#

but it broke the end of the onboarding

hasty kernel
#

ah yeah

pseudo rivet
#

vs

hasty kernel
#

ill get rid of the grid rules

#

it's trying to enforce some "modern" thing there too

#

but it's incorrect

pseudo rivet
#

happE

#

other than that seems ok