{"version":3,"file":"react.cjs","names":["YProvider"],"sources":["../../src/provider/react.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport YProvider from \"./index\";\n\nimport type * as Y from \"yjs\";\n\ntype UseYProviderOptions = {\n  host?: string | undefined;\n  room: string;\n  party?: string;\n  doc?: Y.Doc;\n  prefix?: string;\n  options?: ConstructorParameters<typeof YProvider>[3];\n};\n\nexport default function useYProvider(yProviderOptions: UseYProviderOptions) {\n  const { host, room, party, doc, options, prefix } = yProviderOptions;\n  const [provider] = useState<YProvider>(\n    () =>\n      new YProvider(\n        host ||\n          (typeof window !== \"undefined\"\n            ? window.location.host\n            : \"dummy-domain.com\"),\n        room,\n        doc,\n        {\n          connect: false,\n          party,\n          prefix,\n          ...options\n        }\n      )\n  );\n\n  useEffect(() => {\n    void provider.connect();\n    return () => provider.disconnect();\n  }, [provider]);\n  return provider;\n}\n"],"mappings":";;;;AAeA,SAAwB,aAAa,kBAAuC;CAC1E,MAAM,EAAE,MAAM,MAAM,OAAO,KAAK,SAAS,WAAW;CACpD,MAAM,CAAC,aAAA,GAAA,MAAA,gBAEH,IAAIA,uBAAAA,QACF,SACG,OAAO,WAAW,cACf,OAAO,SAAS,OAChB,qBACN,MACA,KACA;EACE,SAAS;EACT;EACA;EACA,GAAG;EACJ,CACF,CACJ;AAED,EAAA,GAAA,MAAA,iBAAgB;AACT,WAAS,SAAS;AACvB,eAAa,SAAS,YAAY;IACjC,CAAC,SAAS,CAAC;AACd,QAAO"}