Skip to content

Instantly share code, notes, and snippets.

View zbeyens's full-sized avatar
🎯
Focus

Ziad Beyens zbeyens

🎯
Focus
View GitHub Profile
@zbeyens
zbeyens / end-session.md
Last active October 11, 2024 02:20
Store these in your project .ai folder

End Session Instructions

  1. Create a new file: .ai/status/YYYY-MM-DD.md

  2. Structure the update with sections:

    • Development Steps
    • Key Decisions
    • Next Steps

Creating New Mutations and Queries

Follow these steps in order, using existing files as references:

  1. Update Schema

    • Edit packages/db/prisma/schema.prisma
    • Run prisma generate and prisma db push
    • Reference: Existing models in schema.prisma

Using nuqs for URL Query State Management

nuqs is used for managing URL query state in Next.js applications. Follow these guidelines when working with it:

  1. Import necessary functions from nuqs:

    import { parseAsBoolean, parseAsStringEnum, useQueryState } from "nuqs";
// eslint-plugin-array-methods/rules/prefer-array-immutable-methods.js
module.exports = {
create: function (context) {
return {
CallExpression(node) {
const sourceCode = context.getSourceCode()
if (node.callee.type !== 'MemberExpression') return
import type { ZodSchema } from 'zod';
import { parseSchema } from '@/lib/schemas/parseSchema';
/** Get a response with a file to download */
export const getFileResponse = <T>({
file,
filename,
schema,
}: {
'use client';
import * as React from 'react';
import type { DataTableFilterField } from '@/components/ui/data-table/data-table.types';
import {
type ColumnDef,
type ColumnFiltersState,
type PaginationState,
export const fetchCompressImage = async (file: Blob) => {
const formData = new FormData();
formData.append('Content-Type', file.type);
formData.append('file', file);
const res = await fetch(apiRoutes.compressImage, {
body: formData,
method: 'POST',
});
export const searchRange = (
editor: PlateEditor,
search: string | [string, string],
{
match,
// from,
}: {
match?: GetNodeEntriesOptions['match']
from?: Point
} = {},
'use client';
export function withTooltip<
T extends React.ComponentType<any> | keyof HTMLElementTagNameMap,
>(Component: T) {
return React.forwardRef<
React.ElementRef<T>,
React.ComponentPropsWithoutRef<T> & {
tooltip?: React.ReactNode;
tooltipContentProps?: Omit<
import {
getPluginType,
type PlatePlugin,
type TDescendant,
type TElement,
type TText,
} from '@udecode/plate-common';
import {
remarkTransformElementChildren,
type DeserializeMdPlugin,