Skip to content

Instantly share code, notes, and snippets.

View PatrickJS's full-sized avatar

PatrickJS PatrickJS

View GitHub Profile
import { component$, type Signal, type JSXOutput } from "@builder.io/qwik";
export function Show(props: {
when: boolean;
"bind:when": Signal<boolean | undefined>;
children?: JSXOutput;
else?: JSXOutput;
}) {
if (props["bind:when"] !== undefined) {
return props["bind:when"].value ? props.children : props.else;
<BlogIndex> <-- readDir
<RefreshButton />
<Toggle>
<ArticlePreview filename="something.mdx"> <-- read file
first 50 chars
</ArticlePreview>
</Toggle>
<Toggle>
<ArticlePreview filename="something.mdx"> <-- read file
@PatrickJS
PatrickJS / global.tsx
Last active January 26, 2024 03:16
qwik global app context
import {
Slot,
component$,
createContextId,
useContextProvider,
useSignal,
useStore,
type Signal,
} from '@builder.io/qwik';
import { component$, useVisibleTask$, useStore, useSignal, noSerialize } from '@builder.io/qwik';
import lottie from 'lottie-web';
import { Options } from './types';
export interface OptionsProps {
options: Options;
}
export const QwikLottie = component$(({ options }: OptionsProps) => {
const store = useStore({
let data = Array.from({ length: 10 }, (_, i) => `item${i + 1}`);
let packageNameCounter = 0;
// Function to group array elements into packages
function groupArrayElements(list, groupSize) {
// Base case: if the list is small enough, return it as a single package
if (list.length <= groupSize) {
return [{
packageName: 'Pkg' + packageNameCounter++,
items: list
{
"name": "everything",
"version": "2.0.0",
"description": "npm install undefined",
"main": "index.js",
"contributors": [
"PatrickJS <[email protected]>",
"uncenter <[email protected]>"
],
"keywords": [
const fs = require('fs');
// Function to get a file size
function getFileSize(filePath) {
return new Promise((resolve, reject) => {
fs.stat(filePath, (err, stats) => {
if(err) {
reject(err);
} else {
let fileSizeInBytes = stats.size; // size in bytes
const isNode = (value) => {
return value && typeof value.nodeType === 'number';
};
const isDocument = (value) => {
return value.nodeType === 9;
};
const isElement = (value) => {
return value.nodeType === 1;
import { component$, useSignal } from '@builder.io/qwik';
import { server$ } from '@builder.io/qwik-city';
import { worker$ } from '@builder.io/qwik-worker';
function streamFileToServer() {
throw new Error('Function not implemented.');
}
export default component$(() => {
const fileRef = useSignal<HTMLInputElement>();
@PatrickJS
PatrickJS / 0.error
Last active December 16, 2023 05:02
how do you type qwik
/TileTemplate.tsx
15:23 warning Using "onDragStart$" as an event handler, however functions are not serializable.
Did you mean to wrap it in `$()`?
Fix the type of onDragStart$ to be PropFunction
Check out https://qwik.builder.io/docs/advanced/dollar/ for more details qwik/valid-lexical-scope
16:21 warning Using "onDragEnd$" as an event handler, however functions are not serializable.
Did you mean to wrap it in `$()`?
Fix the type of onDragEnd$ to be PropFunction