Skip to content

Commit

Permalink
Merge pull request #43 from floodfx/pubsub
Browse files Browse the repository at this point in the history
Pubsub
  • Loading branch information
floodfx authored Mar 7, 2022
2 parents 4600f2b + aa47593 commit b2ba0f9
Show file tree
Hide file tree
Showing 21 changed files with 1,118 additions and 700 deletions.
532 changes: 266 additions & 266 deletions coverage/clover.xml

Large diffs are not rendered by default.

19 changes: 10 additions & 9 deletions coverage/coverage-final.json

Large diffs are not rendered by default.

190 changes: 184 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "liveviewjs",
"version": "0.0.9",
"version": "0.0.10",
"description": "LiveViewJS brings the power of Phoenix LiveView to Typescript and Javascript developers and applications.",
"targets": {
"client": {
Expand Down Expand Up @@ -56,6 +56,7 @@
"phoenix": "^1.6.6",
"phoenix_html": "^3.2.0",
"phoenix_live_view": "^0.17.6",
"redis": "^4.0.4",
"ws": "^8.4.2",
"zod": "^3.11.6"
},
Expand Down
19 changes: 17 additions & 2 deletions src/examples/index.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import path from 'path';
import { LiveViewServer } from '../server';
import { LiveViewRouter } from '../server/component/types';
import { configLiveViewHandler } from '../server/live_view_route';
import { AsyncFetchLiveViewComponent } from './asyncfetch/component';
import { AutocompleteLiveViewComponent } from './autocomplete/component';
import { LicenseLiveViewComponent } from './license_liveview';
import { LightLiveViewComponent } from './light_liveview';
import { SearchLiveViewComponent } from './live-search/component';
import { PaginateLiveViewComponent } from './pagination/component';
import { routeDetails } from './routeDetails';
import { SalesDashboardLiveViewComponent } from './sales_dashboard_liveview';
import { ServersLiveViewComponent } from './servers/component';
import { SortLiveViewComponent } from './sorting/component';
import { routeDetails } from './routeDetails';
import { VolunteerComponent } from './volunteers/component';
import { AsyncFetchLiveViewComponent } from './asyncfetch/component';

const lvServer = new LiveViewServer({
signingSecret: "MY_VERY_SECRET_KEY",
Expand Down Expand Up @@ -51,6 +52,20 @@ lvServer.registerLiveViewRoutes(router)
// register single route
// lvServer.registerLiveViewRoute("/volunteers", new VolunteerComponent())


lvServer.expressApp.get("/foo/bar", configLiveViewHandler(
new LightLiveViewComponent(),
"root.html.ejs",
"signing-secret-foo",
(req) => {
return { ...req.session, csrfToken: "csrfToken"}
},
{
title: "Examples",
},
)
)

// add your own routes to the express app
lvServer.expressApp.get("/", (req, res) => {

Expand Down
12 changes: 6 additions & 6 deletions src/examples/pagination/component.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { options_for_select } from "../../server/templates/helpers/options_for_select";
import { live_patch } from "../../server/templates/helpers/live_patch";
import { html, HtmlSafeString, join } from "../../server/templates";
import { LiveViewExternalEventListener, LiveViewMountParams, LiveViewSocket, StringPropertyValues } from "../../server/component/types";
import { almostExpired, Donation, listItems } from "./data";
import { SessionData } from "express-session";
import { BaseLiveViewComponent } from "../../server/component/base_component";
import { LiveViewExternalEventListener, LiveViewMountParams, LiveViewSocket, StringPropertyValues } from "../../server/component/types";
import { html, HtmlSafeString, join } from "../../server/templates";
import { live_patch } from "../../server/templates/helpers/live_patch";
import { options_for_select } from "../../server/templates/helpers/options_for_select";
import { almostExpired, Donation, listItems } from "./data";

interface Options {
page: number;
Expand Down Expand Up @@ -84,7 +84,7 @@ export class PaginateLiveViewComponent extends BaseLiveViewComponent<PaginateCon
const page = socket.context.options.page;
const perPage = Number(params.perPage || 10);

this.pushPatch(socket, { to: { path: "/paginate", params: { page: String(page), perPage: String(perPage) } } });
socket.pushPatch({ to: { path: "/paginate", params: { page: String(page), perPage: String(perPage) } } });

return {
options: { page, perPage },
Expand Down
12 changes: 6 additions & 6 deletions src/examples/sorting/component.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { options_for_select } from "../../server/templates/helpers/options_for_select";
import { live_patch } from "../../server/templates/helpers/live_patch";
import { html, HtmlSafeString, join } from "../../server/templates";
import { LiveViewExternalEventListener, LiveViewMountParams, LiveViewSocket, StringPropertyValues } from "../../server/component/types";
import { almostExpired, Donation, listItems, donations } from "./data";
import { SessionData } from "express-session";
import { BaseLiveViewComponent } from "../../server/component/base_component";
import { LiveViewExternalEventListener, LiveViewMountParams, LiveViewSocket, StringPropertyValues } from "../../server/component/types";
import { html, HtmlSafeString, join } from "../../server/templates";
import { live_patch } from "../../server/templates/helpers/live_patch";
import { options_for_select } from "../../server/templates/helpers/options_for_select";
import { almostExpired, Donation, donations, listItems } from "./data";

export interface PaginateOptions {
page: number;
Expand Down Expand Up @@ -118,7 +118,7 @@ export class SortLiveViewComponent extends BaseLiveViewComponent<SortContext, Pa
}


this.pushPatch(socket, { to: { path: "/sort", params: { page: String(page), perPage: String(perPage), sortOrder, sort_by } } });
socket.pushPatch({ to: { path: "/sort", params: { page: String(page), perPage: String(perPage), sortOrder, sort_by } } });

return {
options: { page, perPage, sort_by, sortOrder },
Expand Down
Loading

0 comments on commit b2ba0f9

Please sign in to comment.