@medyat/react-data-table 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -54,7 +54,7 @@ export function OrdersScreen() {
54
54
  id: 'production-orders', // görünümler ve tercihler bu kimlikle saklanır
55
55
  columns,
56
56
  entityName: { one: 'order', other: 'orders' },
57
- views: systemViews, // kodda tanımlı system görünümleri; kişisel olanlar viewsAdapter'dan
57
+ views: systemViews, // kodda tanımlı system görünümleri; filtresiz "Tümü" hazır gelir (R19), kişisel olanlar viewsAdapter'dan
58
58
  count: (query, signal) => api.countOrders(query, signal), // footer'da "Count total"
59
59
  })
60
60
  const result = useQuery({
@@ -76,18 +76,18 @@ nesnesinin `message` ve `id` alanları hata ekranında gösterilir; `refetch` yo
76
76
 
77
77
  ### Durumu adrese bağlamak
78
78
 
79
- Durum varsayılan olarak tablonun içindedir. `state` + `onStateChange` ile alan alan dışarı açılır (R5); paket adrese
80
- kendisi dokunmaz. TanStack Router ile:
79
+ Durum varsayılan olarak tablonun içindedir. `state` + `onStateChange` ile dışarı açılır (R5); paket adrese kendisi
80
+ dokunmaz. `state` verilince eksik alan varsayılandır (varsayılan görünüm ve onun filtre/sıralaması, sayfa 1). İkinci argüman
81
+ `changed` yalnızca varsayılandan farklı alanları taşır: adrese onu yazın, varsayılan liste temiz adres olur. TanStack Router ile:
81
82
 
82
83
  ```tsx
83
- const search = Route.useSearch()
84
+ const search = Route.useSearch() // { view?, search?, filters?, sort?, page?, pageSize? }
84
85
  const navigate = Route.useNavigate()
85
86
  const table = useDataTable({
86
87
  id: 'production-orders',
87
88
  columns,
88
- state: { search: search.q ?? '', filters: search.filters ?? [], sort: search.sort ?? [], page: search.page ?? 1 },
89
- onStateChange: (s) =>
90
- navigate({ search: { q: s.search, filters: s.filters, sort: s.sort, page: s.page }, replace: true }),
89
+ state: search,
90
+ onStateChange: (_state, changed) => navigate({ search: changed, replace: true }),
91
91
  })
92
92
  ```
93
93
 
@@ -141,6 +141,29 @@ Birincil hücre gerçek bir `<a href>`'tir (D6): ⌘/orta tık tarayıcıya kal
141
141
  altında yüzer; `bulkActions` ve `selectionActions` yoksa hiç çizilmez (seçim Export'ta ve header checkbox'ında kalır); `selectionBar="toolbar"` onu araç çubuğunun yerine koyar, `selectionActions` içeriğini tümüyle uygulamaya
142
142
  bırakır. Seçili satırlar `onSelectionChange` ile de okunabilir.
143
143
 
144
+ ### Satır sıralama
145
+
146
+ Varsayılan kapalı (R21). `reorder` verilince satırın başında tutamak çıkar; satır tutamaktan sürüklenir ya da klavyeyle
147
+ taşınır (tutamakta `Space` · `↑↓` · `Space`, `Esc` iptal). Paket numara üretmez: taşınan satırı ve yeni komşularını
148
+ bildirir, sırayı sunucu yazar.
149
+
150
+ ```tsx
151
+ <DataTable
152
+ table={table}
153
+ result={result}
154
+ reorder={{
155
+ // Sıra yalnızca sıra kolonuna göre dizilmiş, tek grubun listesinde anlamlıdır; değilse gerekçe tooltip'te.
156
+ disabled: table.request.sort[0]?.column !== 'sq' && 'Sıralamak için sıra kolonuna göre dizin',
157
+ // after: yeni yerde üstte kalan satır, before: altta kalan; liste başı / sonu null.
158
+ onMove: ({ row, after }) => moveField.mutateAsync({ id: row.id, after: after?.id ?? null }),
159
+ }}
160
+ />
161
+ ```
162
+
163
+ Bırakınca yeni sıra hemen çizilir ve yenilenen sonuç gelene kadar korunur. `onMove` Promise dönerse sonuçlanana kadar
164
+ tutamaklar pasiftir; reddedilirse eski sıraya döner, hata mesajı uygulamanındır. Sürükleme kodu yalnızca sıralama
165
+ açıkken yüklenir.
166
+
144
167
  ### Diğer
145
168
 
146
169
  - `toolbar`: `'auto'` (varsayılan; görünümler, arama, Filter, Display, ⋯), `'minimal'` (yalnızca arama ve
@@ -1,4 +1,4 @@
1
- import { n as e } from "./provider-CTTHEpE3.js";
1
+ import { n as e } from "./provider-BgZBSzsH.js";
2
2
  import { r as t, t as n } from "./model-RkRyfM7C.js";
3
3
  import { c as r } from "react/compiler-runtime";
4
4
  import { Suspense as i, lazy as a, useEffect as o, useRef as s, useState as c } from "react";
@@ -977,7 +977,7 @@ function Ue(e) {
977
977
  return e.trim();
978
978
  }
979
979
  // src/core/filters/value-editor.tsx
980
- var We = a(() => import("./date-editor-CJFd5YEo.js"));
980
+ var We = a(() => import("./date-editor-CxGAEK_C.js"));
981
981
  function Ge(e) {
982
982
  let a = r(51), { chip: o, column: s, rows: c, labels: l, currencies: d, onChange: f, onDone: p } = e, m = s.type, h;
983
983
  a[0] !== o || a[1] !== d || a[2] !== f || a[3] !== m ? (h = (e) => f({
@@ -1120,4 +1120,4 @@ function Ke(e) {
1120
1120
  }
1121
1121
  export { V as _, Te as a, Q as c, ce as d, oe as f, U as g, B as h, xe as i, de as l, K as m, Ge as n, Oe as o, X as p, Fe as r, pe as s, Ke as t, se as u, H as v, G as y };
1122
1122
 
1123
- //# sourceMappingURL=bottom-sheet-NHUT908D.js.map
1123
+ //# sourceMappingURL=bottom-sheet-BMVYPFta.js.map