39 lines
960 B
Swift
39 lines
960 B
Swift
//
|
|
// EditedFilter.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 12/2/22.
|
|
// Copyright © 2022 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import Pachyderm
|
|
|
|
class EditedFilter: ObservableObject {
|
|
let id: String?
|
|
@Published var title: String?
|
|
@Published var contexts: [FilterV1.Context]
|
|
@Published var expiresIn: TimeInterval?
|
|
@Published var keywords: [Keyword]
|
|
@Published var action: FilterV2.Action
|
|
|
|
init(_ mo: FilterMO) {
|
|
self.id = mo.id
|
|
self.title = mo.title
|
|
self.contexts = mo.contexts
|
|
if let expiresAt = mo.expiresAt {
|
|
expiresIn = expiresAt.timeIntervalSinceNow
|
|
}
|
|
self.keywords = mo.keywordMOs.map {
|
|
Keyword(id: $0.id, keyword: $0.keyword, wholeWord: $0.wholeWord)
|
|
}
|
|
self.action = mo.filterAction
|
|
}
|
|
|
|
struct Keyword {
|
|
let id: String?
|
|
var keyword: String
|
|
var wholeWord: Bool
|
|
}
|
|
}
|