Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

@djangocfg/ext-support

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@djangocfg/ext-support

Support ticket system extension for DjangoCFG

latest
Source
npmnpm
Version
1.0.28
Version published
Maintainers
1
Created
Source

DjangoCFG Extension Preview

View in Marketplace | Documentation | GitHub

@djangocfg/ext-support

Customer support and ticketing system extension for DjangoCFG.

Part of DjangoCFG — modern Django framework for production-ready SaaS applications.

Features

  • Ticket Management - Create, track, and resolve support tickets
  • Real-time Messaging - Live chat within tickets
  • Categories & Priority - Organize tickets efficiently
  • Analytics - Track response times and resolution rates

Requirements

  • Next.js 16+
  • React 19+
  • @djangocfg/ui-core
  • @djangocfg/ext-base

Install

pnpm add @djangocfg/ext-support

Quick Start (Next.js App Router)

1. Create layout.tsx (Server Component for metadata)

// app/support/layout.tsx
import type { Metadata } from 'next';

export const metadata: Metadata = {
  title: 'Support',
  description: 'Help and support center',
};

export default function SupportLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return children;
}

2. Create page.tsx (Client Component)

// app/support/page.tsx
'use client';

import { SupportLayout } from '@djangocfg/ext-support';

export default function SupportPage() {
  return (
    <SupportLayout>
      {/* Optional: custom content */}
    </SupportLayout>
  );
}

That's it! SupportLayout includes everything: providers, ticket list, chat panel, and create ticket dialog.

Custom Integration

If you need more control, use individual components:

Provider Setup

// app/providers.tsx
'use client';

import { SupportProvider } from '@djangocfg/ext-support/hooks';

export function Providers({ children }: { children: React.ReactNode }) {
  return (
    <SupportProvider>
      {children}
    </SupportProvider>
  );
}

Using Context Hooks

'use client';

import { useSupportContext } from '@djangocfg/ext-support/hooks';

function MyTicketList() {
  const {
    tickets,
    isLoadingTickets,
    createTicket,
    refreshTickets
  } = useSupportContext();

  const handleCreate = async () => {
    await createTicket({
      subject: 'New ticket',
      message: 'Description here',
    });
    await refreshTickets();
  };

  if (isLoadingTickets) return <div>Loading...</div>;

  return (
    <div>
      <button onClick={handleCreate}>Create Ticket</button>
      {tickets?.map(ticket => (
        <div key={ticket.uuid}>
          <h3>{ticket.subject}</h3>
          <span>Status: {ticket.status}</span>
        </div>
      ))}
    </div>
  );
}

API Reference

SupportContext

interface SupportContextValue {
  // Tickets
  tickets: Ticket[] | undefined;
  isLoadingTickets: boolean;
  ticketsError: Error | undefined;
  refreshTickets: () => Promise<void>;

  // Ticket operations
  getTicket: (uuid: string) => Promise<Ticket | undefined>;
  createTicket: (data: TicketRequest) => Promise<Ticket>;
  updateTicket: (uuid: string, data: TicketRequest) => Promise<Ticket>;
  partialUpdateTicket: (uuid: string, data: PatchedTicketRequest) => Promise<Ticket>;
  deleteTicket: (uuid: string) => Promise<void>;

  // Messages
  getMessages: (ticketUuid: string) => Promise<Message[] | undefined>;
  createMessage: (ticketUuid: string, data: MessageCreateRequest) => Promise<Message>;
  updateMessage: (ticketUuid: string, messageUuid: string, data: MessageRequest) => Promise<Message>;
  deleteMessage: (ticketUuid: string, messageUuid: string) => Promise<void>;
  refreshMessages: (ticketUuid: string) => Promise<void>;
}

Ticket Type

interface Ticket {
  uuid: string;
  subject: string;
  status: 'open' | 'in_progress' | 'resolved' | 'closed';
  created_at: string;
  updated_at: string;
}

TicketRequest Type

interface TicketRequest {
  subject: string;
  message: string;
}

Exports

// Main layout (includes all UI)
import { SupportLayout } from '@djangocfg/ext-support';

// Hooks and context
import {
  SupportProvider,
  useSupportContext
} from '@djangocfg/ext-support/hooks';

// Server-safe config
import { extensionConfig } from '@djangocfg/ext-support/config';

License

MIT

Keywords

django

FAQs

Package last updated on 08 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts